pgfplots 中的轴标签定位

pgfplots 中的轴标签定位

有人能帮我解释一下为什么以下代码中的标签定位不起作用吗?不清楚我做错了什么。我也试过了axis description cs。这也没有改变标签的位置。

谢谢。

\documentclass{article}
\usepackage{tikz}

\usepackage{pgfplots}
\pgfplotsset{compat=1.13}



\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        width=4in,
        height=4in,
        xlabel={Quantity},
        % the following x label positioning does not work.
        every axis x label/.style=
            {at={(ticklabel cs: 0.5)}, anchor=north},
        ylabel={Price},
        axis x line=middle,
        axis y line=middle,
        ytick={0,10,...,90},
        xtick={0,10,...,90},
        ymin=0,
        ymax=100,
        xmin=0,
        xmax=100,
        xlabel shift = -1in,
    ]
        \addplot coordinates {(0,90) (90,0)};
        \addplot[color=red,domain=0:40]{2*x} node [pos=1,above]{MC};

        % why is this node not visible.
        \node at (axis description cs:0.5,-0.02) {(0,0)};
    \end{axis}
\end{tikzpicture}
\end{document}

答案1

axis x line重新定义标签样式,将定义移至其后。请注意,您似乎还需要指定 y 坐标为零,即(ticklabel cs:0.5,0)

阅读第 4.9.1 节轴描述的位置pgfplots手册中了解有关ticklabel坐标系的更多讨论。

至于不可见节点,轴限制之外的所有内容默认都会被剪掉。如果设置clip mode=individual,图将被剪掉,但\nodes 和类似图不会被剪掉。

最后,pgfplots加载tikz,因此您实际上不必明确加载后者。

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        width=4in,
        height=4in,
        xlabel={Quantity},
        ylabel={Price},
        axis x line=middle,
        axis y line=middle,
        % the following x label positioning does work here.
        every axis x label/.style=
            {at={(ticklabel cs: 0.5,0)}, anchor=north},
        ytick={0,10,...,90},
        xtick={0,10,...,90},
        ymin=0,
        ymax=100,
        xmin=0,
        xmax=100,
        xlabel shift = -1in,
        clip mode=individual
    ]
        \addplot coordinates {(0,90) (90,0)};
        \addplot[color=red,domain=0:40]{2*x} node [pos=1,above]{MC};

        % why is this node not visible.
        \node at (axis description cs:0.5,-0.02) {(0,0)};
    \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容