如何生成x轴不按顺序排列的Matplotlib图?

5 投票
1 回答
9246 浏览
提问于 2025-04-17 18:34

我想画一些y数据,但x轴的数字顺序不是正常的排列:

比如说:

y = [100, 99, 93, 88, 85, 43]
x = [0, 5, 4, 3, 2, 1]
plot(x, y)

我希望x轴显示为0, 5, 4, 3, 2, 1,按照这个顺序均匀分布,并且在上面有对应的y值。

我该怎么做呢?

1 个回答

7

我会把 x 的 'values' 用作 x 轴的标签。比如说:

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
y = [100, 99, 93, 88, 85, 43]
xt = [0, 5, 4, 3, 2, 1]
ax.plot(y)
ax.set_xticklabels(xt)
fig.savefig("out.png")

这样就会产生

更改了 x 轴标签的图片

更一般来说,你可以把 x 的坐标设置成你想要的任何值,然后相应地设置 xticksxticklabels

撰写回答