pgfplots 用于额外刻度的小数分隔符

pgfplots 用于额外刻度的小数分隔符

我正在尝试格式化全部y 在图表中勾选标签,pgfplots以便逗号作为小数分隔符。我尝试过的方法是:

\documentclass{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat = 1.12}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[axis lines = center, xlabel = {$x$}, ylabel = {$f(x)$},
     /pgf/number format/.cd, use comma, 
    extra y ticks = {8.25}, extra y tick labels = {$\theta = 8.25$}]
    \addplot [domain = 0:8] {x^2}; 
  \end{axis}
\end{tikzpicture}
\end{document}

这使

MWE 输出 PDF

我还希望小数点分隔符能够正确对齐(以防其他 y 刻度使用一个),即使\theta =存在该部分。

使用\pgfmathprintnumber{8.25}给了我正确的小数分隔符(,),但我无法\theta =正确定位。

答案1

如果所有这些extra y ticks都应该\theta =在数字之前,你可以使用

extra y tick label = {$\theta = \pgfmathprintnumber{\tick}$}

而不是extra y tick labels。或者,如果只有一个,您可以将代码修改为extra y tick labels = {$\theta = \pgfmathprintnumber{8.25}$}

如果您为所有刻度标签设置了相同的精度,则逗号会排列整齐,请参见第二个示例。

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}
\pgfplotsset{compat = 1.12}

\begin{document}
\begin{tikzpicture}
  \begin{axis}[
    axis lines = center,
    xlabel = {$x$},
    ylabel = {$f(x)$},
    /pgf/number format/.cd, use comma,
    extra y ticks = {8.25,28.45},
    extra y tick label = {$\theta = \pgfmathprintnumber{\tick}$},
    ]
    \addplot [domain = 0:8] {x^2}; 
  \end{axis}
\end{tikzpicture}
\begin{tikzpicture}
  \begin{axis}[
    axis lines = center,
    xlabel = {$x$},
    ylabel = {$f(x)$},
    /pgf/number format/.cd, use comma,
    extra y ticks = {8.25,28.4},
    extra y tick label = {$\theta = \pgfmathprintnumber{\tick}$},
    yticklabel style={/pgf/number format/.cd,
                      fixed,fixed zerofill,precision=2}
    ]
    \addplot [domain = 0:8] {x^2}; 
  \end{axis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容