pgfplots 从上到下绘制线(0% 到 100%),但给定 x 值

pgfplots 从上到下绘制线(0% 到 100%),但给定 x 值

我试图从图表顶部到底部绘制一条直线,而不定义具体的 y 值,而只表示 y 轴的 0% 到 100%。但是,x 值应在图表的坐标系中设置。

我正在运行compat=1.15,所以不需要axis cs:在坐标前添加以让它们与真实图形相匹配。

我认为我需要使用两个不同的坐标系。对于 x 值,默认坐标系axis cs很方便,但对于 y 值,我更需要axis description cs。请注意,pgfplots 中的默认图表在每侧都有一点边距,因此即使我手动输入 y 值,线条也不会从最顶部到最底部,而它应该是这样的。

从 MWE 中可以看出,设置小于最小绘图值的值会产生正确的结果,因此可能的破解方法可能是仅使用极端数字,但我不喜欢这个想法。

平均能量损失

\documentclass{article}

\usepackage{pgfplots, filecontents}

\pgfplotsset{compat=1.15}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[
        xlabel = {x},
        ylabel = {y},
    ]
        \addplot+[mark=none, smooth] plot coordinates {
            (200, 20)
            (210, 22)
            (220, 23)
            (230, 25)
            (240, 35)
            (250, 40)
            (260, 36)
            (270, 27)
            (280, 20)
            (290, 19)
            (300, 15)
        };

        \draw (250, 0) -- (250, 40);
    \end{axis}
\end{tikzpicture}

\end{document}

答案1

这可以通过

\draw (current axis.south-|<x>, 0) -- (current axis.north-|<x>,0);

或者像 Stefan Pinnow 那样评论

\draw (<x>,0 |- {axis description cs:0,0}) -- (<x>,0 |- {axis description cs:0,1});

两者都使用perpendicular坐标系,它取两个点(我们称它们为pq),从一个点绘制一条垂直线,从另一个点绘制一条水平线,并返回这些线的交点。隐式语法可以用作:(p-|q)(p|-q)

的意思-|是我想使用-来自 的水平线 ( )和来自 的p垂直线 ( ) 的交点。同样, 的意思相同,但反过来。原则上,这意味着对于我使用 的坐标和的坐标,丢弃 的和的。|q|--|ypxqxpyq

梅威瑟:

\documentclass{article}

\usepackage{pgfplots}

\pgfplotsset{compat=1.15}

\begin{document}

\begin{tikzpicture}
    \begin{axis}[
        xlabel = {x},
        ylabel = {y},
    ]
        \addplot+[mark=none, smooth] plot coordinates {
            (200, 20)
            (210, 22)
            (220, 23)
            (230, 25)
            (240, 35)
            (250, 40)
            (260, 36)
            (270, 27)
            (280, 20)
            (290, 19)
            (300, 15)
        };

        \draw (current axis.south-|240, 0) -- (current axis.north-|240,0);

        \draw (260,0 |- {axis description cs:0,0}) -- (260,0 |- {axis description cs:0,1});

    \end{axis}
\end{tikzpicture}

\end{document}

导致

enter image description here

相关内容