在 pgfplots 中向各个轴刻度标签添加不同的希腊字符

在 pgfplots 中向各个轴刻度标签添加不同的希腊字符

我一直在搜索网络和 pgfplots 手册,试图找到一个用不同的希腊字符标记不同 x 轴刻度的示例。我找到的最接近的方法是使用

    xticklabel={$\pgfmathprintnumber{\tick}\sigma $},
    xtick={-3,-2,-1,0,1,2,3},

我的情节完整代码如下

    \pgfplotsset{width=7cm,compat=1.16}
    \begin{center}
    \begin{tikzpicture}[baseline]
    \begin{axis}[
        axis lines=left,
        title={Standard Normal Distribution $Z\sim N\left ( 0,1 \right )$},
        xlabel={$z$-score},
        ylabel={Probability},
        xticklabel={$\pgfmathprintnumber{\tick}\sigma $},
        xtick={-3,-2,-1,0,1,2,3},
        ytick={0,0.1,0.2,0.3,0.4},
        ymax=0.5
        ]

        \newcommand\MU{0}
        \newcommand\SIGMA{1}
        \addplot[
            domain=-4*\SIGMA:4*\SIGMA,
            samples=201,
            ]
            {exp(-(x-\MU)^2 / 2 / \SIGMA^2) / (\SIGMA * sqrt(2*pi))};
    \end{axis}
    \end{tikzpicture}
    \end{center}

但这里显然只是用值旁边的 sigma 修改每个 xtick。我想要的是让 xtick 读取 mu-3*sigma、mu-2*sigma、mu-sigma、mu 等等。

任何想法都将不胜感激。

答案1

欢迎来到 TeX.SE!类似这样的事?

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\pgfplotsset{width=12cm,compat=1.16}
\begin{center}
\begin{tikzpicture}[baseline]
\begin{axis}[
    axis lines=left,
    title={Standard Normal Distribution $Z\sim N\left ( 0,1 \right )$},
    xlabel={$z$-score},
    ylabel={Probability},
    xticklabel={$\mu\pgfmathtruncatemacro{\mytick}{int(\tick)}
    \ifnum\mytick=0
    \else
    \pgfmathparse{ifthenelse(\tick<0,"","+")}
    \pgfmathresult\pgfmathprintnumber{\tick}\sigma\fi $},
    xtick={-3,-2,-1,0,1,2,3},
    ytick={0,0.1,0.2,0.3,0.4},
    ymax=0.5
    ]

    \newcommand\MU{0}
    \newcommand\SIGMA{1}
    \addplot[
        domain=-4*\SIGMA:4*\SIGMA,
        samples=201,
        ]
        {exp(-(x-\MU)^2 / 2 / \SIGMA^2) / (\SIGMA * sqrt(2*pi))};
\end{axis}
\end{tikzpicture}
\end{center}
\end{document}

在此处输入图片描述

我把图做得稍微宽一些,这样现在更宽的标签就不会重叠。或者,你可以旋转它们。

相关内容