2

我正在使用Matplotlibpyplot.plot()的功能绘制一些数据。

数据的 X 值是整数,但这些数字没有任何意义。例如:

x_vals = [2, 34, 456, 999, 10000]

但是,matplotlib 认为这些是实际的 X 值。它缩放 X 轴并在绘图上显示如下刻度:

|
|
|
|
+---+----+----+----+----+
0   2000 4000 6000 8000 10000

我想要的是 matplotlib 像这样使用 X 轴盲目绘图:

|
|
|
|
+---+----+----+----+
2   34   456  999  10000

也就是说,我希望刻度数等于我传入的 X 值的数量。我还希望这些值被盲目解释,可能是字符串。

如何在 Matplotlib 中做到这一点?

4

1 回答 1

2

一种可能的解决方案是沿 x 轴绘制 arange而不是实际的 x 值,然后手动将标签更改为所需的值。

换句话说:

plt.plot(range(len(y_values)), y_values)
plt.gca().xaxis.set_ticklabels(x_values)

其中,在这种情况下,x_values = [2, 34, 10000]

于 2013-05-16T11:31:38.990 回答