符号 x 坐标的千位分隔符?

符号 x 坐标的千位分隔符?

当我使用符号 x 坐标作为标签时,如何使千位分隔符适用于 x 刻度标签?出于某种原因,该设置根本不影响输出。请注意,默认情况下我使用旧式数字,但在图中,数字可以是新式。有什么想法可以解决这个问题吗?

下面是一个最小示例。y 刻度标签有适当的分隔符,但 x 标签没有。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplotstable}
\usepackage{lmodern,textcomp}
\usepackage[sc,osf]{mathpazo}

\pgfplotsset{compat=1.15}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    y tick label style={
        /pgf/number format/1000 sep=\,},
    x tick label style={
        /pgf/number format/1000 sep=\,},
    symbolic x coords={$1000$, $5000$},
    xtick=data,
    ybar
]
    \addplot coordinates {($1000$, 1000) ($5000$, 1200)};
\end{axis}
\end{tikzpicture}
\end{document}

答案1

不确定您为什么认为该设置会影响标签。符号坐标就是符号坐标,所以我不认为它们被数字解析器解析(毕竟它们可能是文本)。话虽如此,似乎您可以使用例如作为符号\pgfmathprintnumber{5000}坐标,然后number format应用。

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{pgfplotstable}
\usepackage{lmodern,textcomp}
\usepackage[sc,osf]{mathpazo}

\pgfplotsset{compat=1.15}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    y tick label style={
        /pgf/number format/1000 sep=\,},
    x tick label style={
        /pgf/number format/1000 sep=\,},
    symbolic x coords={\pgfmathprintnumber{1000}, \pgfmathprintnumber{5000}},
    xtick=data,
    ybar
]
    \addplot coordinates {(\pgfmathprintnumber{1000}, 1000) (\pgfmathprintnumber{5000}, 1200)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容