我想将所有 xticks 标签均匀分布在 X 轴上,即使它们是整数。因此,不要这样做:
我希望将 10000、20000、50000、100000、200000 视为文本标签并均匀排列。
我有这个代码(未省略导入的部分):
xmajorgrids,
xtick=data,
ymin=800,
ymax=950,
scaled ticks=false,
tick label style={/pgf/number format/fixed},
然后是这个:
\addplot[draw=none,fill=mycolor1!20, postaction={pattern=crosshatch dots,pattern color=mycolor1}
] table[row sep=crcr]
{%
10000 807 \\
25000 823 \\
50000 884 \\
100000 887 \\
200000 888 \\
};
我尝试使用符号 x 刻度,但没有按预期工作。谢谢!
答案1
更自动化的方法是使用该xticklabels from table
功能。遗憾的是,目前标签被解释为“符号坐标”,即文本,因此无法应用数字格式。当然,要使用此功能,必须将表格作为文件或加载的表格提供...
% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplotstable}
\pgfplotstableread{
10000 807
25000 823
50000 884
100000 887
200000 888
}{\datatable}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
ymin=800,
ymax=950,
xmajorgrids,
xtick=data,
% ---------------------------------------------------------------------
% added stuff
xticklabels from table={\datatable}{[index] 0},
xtick distance=1,
table/x expr=\coordindex,
% ---------------------------------------------------------------------
]
\addplot table [y index=1] {\datatable};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
我确实找到了答案,也许它会对某些人有所帮助。我在上面添加了一行代码xtick=data
:
symbolic x coords={10000,25000,50000,100000,200000},
而且它确实有效。