如何将所有 xticks 均匀排列在 x 轴上?

如何将所有 xticks 均匀排列在 x 轴上?

我想将所有 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},

而且它确实有效。

相关内容