我有一些数据想要绘制在条形图中,其中 x 轴上的名称应该带有 % 符号。因此,这样做可行:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
symbolic x coords={10 perc,20 perc},
]
\addplot coordinates {(10 perc,10) (20 perc,20)};
\end{axis}
\end{tikzpicture}
\end{document}
但如果我尝试类似的事情:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
symbolic x coords={10\%,20\%},
]
\addplot coordinates {(10\%,10) (20\%,20)};
\end{axis}
\end{tikzpicture}
\end{document}
我收到以下错误:
ERROR: Missing \endcsname inserted.
--- TeX said ---
<to be read again>
\%
l.8 ]
这在数学模式中和数学模式外都会发生。
\\\% 导致 pdflatex 挂起。
提前致谢!
答案1
LaTeX 有一个安全百分比宏,但是它使用名称@
,因此首先给它一个不带 . 的名称@
。
\documentclass{article}
\usepackage{pgfplots}
\makeatletter
\let\percent\@percentchar
\makeatother
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
symbolic x coords={10\percent,20\percent},
]
\addplot coordinates {(10\percent,10) (20\percent,20)};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
尝试这个:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar,symbolic x coords={10,20},xticklabel=$\pgfmathprintnumber{\tick}$\,\%]
\addplot coordinates {(10,10) (20,20)};
\end{axis}
\end{tikzpicture}
\end{document}
的默认值xticklabel
定义为(手册第 225 页pfgplots
)
\def\axisdefaultticklabel{$\pgfmathprintnumber{\tick}$}