我想使用 在 pgfplots 图片中的两条线之间绘制一条弧axis cs
。我的第一次尝试如下:
\documentclass[12pt,a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[xmin=-8,xmax=8,xtick={-8,-6,...,8},
ymin=-8,ymax=8,ytick={-8,-6,...,8},grid=major
,view={0}{90},x post scale={2},y post scale=2
]
\addplot[black,thin,domain=0:8]{0};
\addplot[black,thin,domain=0:8]{2.3962931*x};
\draw [->] (axis cs:2,0) arc [radius=17mm,start angle=0,end angle=64.3];
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}
但是,半径和角度的值需要通过反复试验来确定。因此,如果我更改缩放比例(如使用x post scale
和y post scale
),则圆弧无法正确显示。
显然,我遗漏了一些东西,应该有一种直接的方法来实现我的目标。我可以将弧线改为圆形(设置半径=2(无单位)),然后我得到了我所期望的结果,并且它可以缩放。
任何见解都将不胜感激。
彼得·约翰斯顿。
答案1
在这种情况下,最简单的做法是设置disabledatascaling
,在这种情况下,画布和轴单位相同(即\draw (0,0) -- (1,1)
具有与 相同的效果\draw (axis cs:0,0) -- (axis cs:1,1)
)。只有当您的单位在不会导致上溢或下溢的“合理”范围内时,这才会起作用。对于您来说,它会正常工作。请注意,您还应该设置axis equal
,否则您的弧线会被挤压一点。
\documentclass[12pt,a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.5.1}
\begin{document}
\begin{center}
\begin{tikzpicture}
\begin{axis}[xmin=-8,xmax=8,xtick={-8,-6,...,8},
ymin=-8,ymax=8,ytick={-8,-6,...,8},grid=major
,view={0}{90},x post scale={2},y post scale=2, disabledatascaling, axis equal
]
\addplot[black,thin,domain=0:8]{0};
\addplot[black,thin,domain=0:8]{2.3962931*x};
\draw [thick, ->] (axis cs:2,0) arc [radius=2,start angle=0,end angle=64.3];
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}