如何使用轴 cs 在 pgfplots 中的两条线之间绘制圆弧

如何使用轴 cs 在 pgfplots 中的两条线之间绘制圆弧

我想使用 在 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 scaley 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}

相关内容