我正在尝试在绘图中指定我自己的 xtick 标签。通过定义“常规方式”时的问题xticklabel={a1, a2, ...}
在于,现在我的整个标签列表在每个 xtick 上都被使用和重复,见图。
当我从文件读取标签时,我可以避免这种情况。我做错了什么?
梅威瑟:
\begin{filecontents*}{data.dat}
a b c d
0 5 3 4
1 6 3 4
2 7 3 4
3 8 3 4
4 9 3 4
\end{filecontents*}
\begin{filecontents*}{names.dat}
names
a1
a2
a3
a4
a5
\end{filecontents*}
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xtick={0, 1, 2, 3, 4, 5},
%xticklabels from table={names.dat}{names}, % this works
xticklabel={a1, a2, a3, a4, a5}, % this does not
]
\addplot table [x=a, y=b] {data.dat};
\addplot table [x=a, y=c] {data.dat};
\addplot table [x=a, y=d] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
xticklabel
为所有刻度指定单个标签。在您的 MWE 中,xticklabel={a1, a2, a3, a4, a5}
将每个标签设置为a1, a2, a3, a4, a5
。替换xticklabel
为xticklabels
可实现预期行为。
\begin{filecontents*}{data.dat}
a b c d
0 5 3 4
1 6 3 4
2 7 3 4
3 8 3 4
4 9 3 4
\end{filecontents*}
\begin{filecontents*}{names.dat}
names
a1
a2
a3
a4
a5
\end{filecontents*}
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xtick={0, 1, 2, 3, 4, 5},
%xticklabels from table={names.dat}{names}, % this works
xticklabels={a1, a2, a3, a4, a5}, % this works too
%xticklabel={a1, a2, a3, a4, a5}, % this does not
]
\addplot table [x=a, y=b] {data.dat};
\addplot table [x=a, y=c] {data.dat};
\addplot table [x=a, y=d] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}