我有一个条形图,其中类别(在 x 轴上)是数字:
\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{foo.csv}
x,y
1,4
2,7
3,2
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar, xtick={1,2,3}]
\addplot[x=x, y=y, fill] table[col sep=comma] {foo.csv};
\end{axis}
\end{tikzpicture}
\end{document}
我希望按 [2,3,1] 而不是 [1,2,3] 的顺序绘制列。不幸的是,如果我只使用xtick={2,3,1}
而不是xtick={1,2,3}
,则不会发生任何变化。据推测,pgfplots 认为 1、2 和 3 是数字但我希望他们被理解为类别在我的上下文中。我该如何重新排列我的列?
答案1
使用symbolic x coords
。
\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{filecontents}
\begin{filecontents}{foo.csv}
x,y
1,4
2,7
3,2
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}[ybar, symbolic x coords={2,3,1},xtick=data]
\addplot[x=x, y=y, fill] table[col sep=comma] {foo.csv};
\end{axis}
\end{tikzpicture}
\end{document}