当我使用符号 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}