如何在matplotlib/pylab中使X轴不自动排序值?

Hon*_*sta 10 python axis numpy matplotlib

每当我绘图时,X轴会自动排序(例如,如果我输入值3,2,4,它会自动将X轴从小到大排序.

我怎么能这样做,所以轴保持我输入值的顺序,即3,2,4

   import pylab as pl
   data = genfromtxt('myfile.dat')
   pl.axis('auto')
   pl.plot(data[:,1], data[:,0])
Run Code Online (Sandbox Code Playgroud)

我找到了一个函数,set_autoscalex_on(FALSE),但我不知道如何使用它或者它是否是我想要的.谢谢

Rut*_*ies 5

您可以提供一个虚拟的 x 范围,然后覆盖 xtick 标签。我确实同意上面质疑它是否是最佳解决方案的评论,但如果没有任何上下文,就很难判断。

如果你真的想,这可能是一个选择:

fig, ax = plt.subplots(1,2, figsize=(10,4))

x = [2,4,3,6,1,7]
y = [1,2,3,4,5,6]

ax[0].plot(x, y)

ax[1].plot(np.arange(len(x)), y)
ax[1].set_xticklabels(x)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

编辑:如果您使用日期,为什么不在轴上绘制实际日期(如果您确实想要轴上的 29 30 1 2 等,则可以按月的日期对其进行格式化?