Pgfplots:除 0 刻度外,刻度标签均用零填充

Pgfplots:除 0 刻度外,刻度标签均用零填充

当不需要时,刻度标签的标准pgfplots符号不以零结尾,但科学论文的标准符号是所有刻度在点后都有相同数量的数字,0 的一部分通常简单打印为0

我可以为所有刻度设置相同的精度,但我想0简单地打印0而不是例如0.0,我该怎么做?

第一张图片是pgfplots默认的,第二张图片是我能做的,第三张图片是我想要做的。

在此处输入图片描述

第二张图片的最少代码

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}    [ymin=0, ymax=2,
            xmin=0.2, xmax=2,
            y tick label style={
                /pgf/number format/fixed,
                /pgf/number format/fixed zerofill,
                /pgf/number format/precision=1},
            ]
    \addplot[only marks] {x};
\end{axis}
\end{tikzpicture}
\end{document}

答案1

这是一个相当不寻常的要求(我找不到任何使用这种格式的已发布示例),而且我认为没有预定义的格式。看来您必须使用条件来执行此操作:

yticklabel={\ifdim\tick pt=0pt 0 \else\pgfmathprintnumber{\tick}\fi}

0如果刻度值为 则打印0,其他情况下则通过数字格式化程序输入数字:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}    [ymin=0, ymax=2,
            xmin=0.2, xmax=2,
            y tick label style={
                /pgf/number format/fixed,
                /pgf/number format/fixed zerofill,
                /pgf/number format/precision=1
            },
            yticklabel={\ifdim\tick pt=0pt 0 \else\pgfmathprintnumber{\tick}\fi}
            ]
    \addplot[only marks] {x};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容