如何在 pgfplots 中的符号 x 坐标中获取 % 符号

如何在 pgfplots 中的符号 x 坐标中获取 % 符号

我有一些数据想要绘制在条形图中,其中 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}$}

相关内容