我想将图表中包含的信息量降至最低。我首先从数据文件 (http://www.sendspace.com/file/wwydju)。
\documentclass{standalone}
\usepackage {tikz}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots}
\definecolor{myorange}{RGB}{238,165,52}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=none]
\addplot [color=myorange,style=solid, thick] table[x index=0,y index=1,col sep=space]{spectrum.dat};
\end{axis}
\end{tikzpicture}
\end{document}
但我真的不明白如何访问轴环境之外的图表中的点。我想创建类似 Jean-luc Doumont 书中的图表树、映射和定理(如果你想这样说的话,我知道我只有插值)。
图形的位置与正常坐标轴有何关系?
如果有人能帮助我,我将不胜感激:)。
答案1
如果我理解正确的话,您问的是如何使用轴单位放置 TikZ 元素(如节点或箭头)。一个简单的方法是包含元素之内环境axis
,因为这使您能够访问坐标系:例如,axis cs:
如果您想将一个元素放置在 17.2 GHz、650 mW 处,您会说。\node at (axis cs:17.2,650) ...
如果您clip mode=individual
在axis
选项中说,那么 TikZ 对象就不会局限于轴区域。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\usepackage{siunitx}
\pgfmathsetseed{1}
\begin{document}
\begin{tikzpicture}[
declare function={lorentz(\x,\w)=\w^2/(\w^2+(2*\x)^2);}
]
\begin{axis}[
axis lines*=left,
xtick={16,17.2,19},
ytick={0,325,650},
ymin=0, ymax=650,
enlarge y limits=false,
enlarge x limits=false,
width=10cm, height=5cm,
xlabel=Frequency in \si{\GHz},
ylabel=Output power\\in \si{\milli\W},
ylabel style={
rotate=-90,
align=right,
},
tick align=outside,
tick style=black,
clip mode=individual,
x axis line style={opacity=0},
x tick style={yshift=-0.5cm},
x tick label style={yshift=-0.5cm},
y axis line style={xshift=-0.5cm},
y tick style={xshift=-0.5cm},
y tick label style={xshift=-0.5cm}
]
\addplot [
thick,
orange,
smooth,
samples=30,
domain=15.5:19.5
] {lorentz(x-17.2,0.63)*650};
\addplot [
only marks,
samples=20,
domain=16:19
] {lorentz(x-17.2,0.63)*650+rand*20};
\draw [thick, gray, latex-latex] (axis cs:16.885,325) -- (axis cs:17.515,325)
node [black!75, pos=0.5, below] {\SI{630}{\MHz}};
\node at (axis cs:17.3,660) [anchor=west] {measured};
\node at (axis cs:17.35,550) [anchor=west, orange!90!black] {calculated};
\draw [yshift=-0.5cm] ({rel axis cs:0,0}-|{axis cs:16,0}) -- ({rel axis cs:0,0}-|{axis cs:19,0});
\end{axis}
\end{tikzpicture}
\end{document}