如何提高 TikZ 直方图中的数字精度

如何提高 TikZ 直方图中的数字精度

我在下面的代码中输入了定点数:

\begin{tikzpicture}   
\centering   
\begin{axis}[xbar,bar width=0.2cm,legend style={at={(0.5,-0.15)},     xmin=0,xmax=0.8,anchor=north,legend columns=-1},ylabel={Top 6 Cases},symbolic y coords={Case$_{b3}$,Case$_{b6}$,Case$_{b4}$,Case$_{c5}$,Case$_{d1}$,Case$_{c3}$},     ytick=data,     nodes near coords,     nodes near coords align=horizontal,     ]
 \addplot coordinates {(0.6967,Case$_{b3}$) (0.69628,Case$_{b6}$) (0.69201,Case$_{b4}$) (0.66584,Case$_{c5}$) (0.65422,Case$_{d1}$) (0.65363,Case$_{c3}$)};
\end{axis} 
\end{tikzpicture}

但是 pdf 文件中显示的数字只有小数点后 2 位,我希望它们显示为代码中具有正确精度的数字。

答案1

标签节点的内容由 的参数决定nodes near coords。其默认值为\pgfmathprintnumber{\pgfplotspointmeta},因此它使用 PGF 数字解析器来格式化数字。默认情况下,这会将值四舍五入为两位数。

有多种方法可以改变这种情况。一种方法是将可选参数设置为

nodes near coords={\pgfmathprintnumber[fixed zerofill, precision=5]{\pgfplotspointmeta}},

或者你可以使用以下every node near coord风格:

every node near coord/.append style={
    /pgf/number format/fixed zerofill,
    /pgf/number format/precision=5
}

两者都会导致相同的结果:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}   
\centering   
\begin{axis}[
    xbar,
    enlarge x limits=0.4,
    bar width=0.2cm,
    legend style={
        at={(0.5,-0.15)},
        anchor=north,
        legend columns=-1
    },
    ylabel={Top 6 Cases},
    symbolic y coords={
        Case$_{b3}$,
        Case$_{b6}$,
        Case$_{b4}$,
        Case$_{c5}$,
        Case$_{d1}$,
        Case$_{c3}$
    },
    ytick=data, 
    nodes near coords,
    nodes near coords align=horizontal,
    every node near coord/.append style={
        /pgf/number format/fixed zerofill,
        /pgf/number format/precision=5
    }
]
\addplot coordinates {(0.6967,Case$_{b3}$) (0.69628,Case$_{b6}$) (0.69201,Case$_{b4}$) (0.66584,Case$_{c5}$) (0.65422,Case$_{d1}$) (0.65363,Case$_{c3}$)};
\end{axis} 
\end{tikzpicture}
\end{document}

相关内容