为什么这两张 tikz 图片的输出结果不同?

为什么这两张 tikz 图片的输出结果不同?

有几个这样的问题,但不幸的是,答案都是针对特定情况的,而且我所看到的都没有与我的答案相匹配。

以下两张图片具有相同的 x 和 y 标签样式,但标签的位置不同(见输出)。

在此处输入图片描述

我猜这是样式键和其他键之间相互作用的结果,但我不知道是怎么回事。它们不同没什么大不了的,但知道原因就好了。以下是两者的代码:

\documentclass[11pt,reqno]{amsbook}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}

\pgfmathdeclarefunction{Exp_CDF}{1}{%
  \pgfmathparse{1-exp(-(#1*x)}%
}
\begin{tikzpicture}
    \begin{axis}
        [
        mark=none,
        domain= 0:4,
        samples=50,
        smooth,
        axis x line*=bottom, 
        xlabel=$x$,     
        xlabel style={anchor=west},
        axis y line*=left, 
        ylabel=$F_X(x:\theta)$,     
        ylabel style={anchor=south},
        legend pos=south east,
        legend entries={$\theta=0.5$},
        enlargelimits=upper,
        ]
        \addplot[color=red] {Exp_CDF(0.5)};
    \end{axis}
\end{tikzpicture}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pgfmathdeclarefunction{gaussPDF}{2}{%
  \pgfmathparse{1/(#2*sqrt(2*pi))*exp(-((x-#1)^2)/(2*#2^2))}%
}
\begin{tikzpicture}
    \begin{axis}
        [
        axis lines=middle,
        tick label style={font=\scriptsize},
        legend pos=outer north east,
         xlabel=$x$, 
        xlabel style={anchor=west},
        ylabel=${f_X(x:c,d)}$,
        ylabel style={anchor=south},
        enlargelimits=upper,
        mark=none, 
        domain=-5:5, 
        samples=51,
        legend entries={$c=0; d=1$},
        ]
        \addplot[thick, red] {gaussPDF(0,1)};
    \end{axis}
\end{tikzpicture}
    
\end{document}

答案1

bottom轴线的/ top/ left/选项right的标签位于轴的下方/上方/左侧/右侧,因为不会有任何图表阻碍。

middle(= )选项center需要将标签放在轴的末尾,因为它可能与图表本身重叠。

显然,pgfplots不会仅仅因为两边没有实际的图表而改变这种行为middle

我建议学习4.9.9 小节“轴线”手册,pgfplots因为它还解释了带星号和不带星号的版本之间的区别以及它们如何影响轴标签的位置。

相关内容