pgfplots 条形图中的百分比列标签

pgfplots 条形图中的百分比列标签

我正在制作一个条形图,其数据值介于 0 到 1 之间,表示百分比,如下所示:

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

\begin{tikzpicture}
\begin{axis}[ybar,
             bar width=1,
             ymin=0,
             enlarge x limits={abs=1},
             xtick=data,
             nodes near coords,
             nodes near coords style={/pgf/number format/precision=3},
             xticklabels={A,B,C,D},
             yticklabel={\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}\%},
             tickwidth=0,
            ]

    \addplot table[x expr=\coordindex,y index=0,row sep=\\] {0.104\\0.254\\0.309\\0.271\\};
\end{axis}
\end{tikzpicture}

\end{document}

条形图的 MWE 输出

我需要将值以百分比形式显示在 y 轴和列标签上。我找到了更改 y 轴值的选项,但我不知道如何对标签执行相同的操作。如果我理解它的工作原理,我应该在选项中yticklabel={\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}\%}添加一行,但我不知道应该添加什么。\pgfmathparse{\〈something〉*100}\pgfmathprintnumber{\pgfmathresult}\%}nodes near coords\〈something〉

我的假设正确吗?如果正确,那是什么\〈something〉?如果不正确,我该如何将标签的值更改为等效的百分比值?请注意,我需要保留所有小数,因此 0.104 必须变成 10.4%(而不是 10%)。

答案1

的默认值为nodes near coords\pgfmathprintnumber\pgfplotspointmeta因此,您可以将其更改为

nodes near coords={\pgfmathprintnumber\pgfplotspointmeta\%} 

并将默认元数据乘以 100 以获得百分比。

\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}

\begin{document}

\begin{tikzpicture}
\begin{axis}[ybar,
             bar width=1,
             ymin=0,
             enlarge x limits={abs=1},
             xtick=data,
             point meta=y*100,
             nodes near coords={\pgfmathprintnumber\pgfplotspointmeta\%},
             nodes near coords style={/pgf/number format/precision=3,
             /pgf/number format/fixed},
             xticklabels={A,B,C,D},
             yticklabel={\pgfmathparse{\tick*100}\pgfmathprintnumber{\pgfmathresult}\%},
             tickwidth=0,
            ]

    \addplot table[x expr=\coordindex,y index=0,row sep=\\] {0.104\\0.254\\0.309\\0.271\\};
\end{axis}
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容