Python Matplotlib-设置X轴比例

Yus*_*ury 5 python tkinter matplotlib

我的这张图显示以下内容:

plt.plot(valueX, scoreList)
plt.xlabel("Score number") # Text for X-Axis
plt.ylabel("Score") # Text for Y-Axis
plt.title("Scores for the topic "+progressDisplay.topicName)
plt.show()
Run Code Online (Sandbox Code Playgroud)

valueX = [1,2,3,4],scoreList = [5,0,0,2]

无论'scoreList'中的值是多少,我都希望小数位增加1。目前,我的x轴以0.5而不是1s上升。

如何设置它使其仅在1中上升?

Nov*_*vel 8

只需自己设置xticks。

plt.xticks([1,2,3,4])
Run Code Online (Sandbox Code Playgroud)

要么

plt.xticks(valueX)
Run Code Online (Sandbox Code Playgroud)

由于范围函数恰好适用于整数,因此您可以改用:

plt.xticks(range(1, 5))
Run Code Online (Sandbox Code Playgroud)

或者更具动态性并根据数据进行计算:

plt.xticks(range(min(valueX), max(valueX)+1))
Run Code Online (Sandbox Code Playgroud)


小智 7

嘿,看来您需要设置 x 轴比例。

尝试

matplotlib.axes.Axes.set_xscale(1, 'linear')
Run Code Online (Sandbox Code Playgroud)

这是该功能的文档

  • 这在 matplotlib 3 中是不正确的。它应该读取 `plt.gca().set_xscale('linear')`。否则,您将通过编写“plt.axes.Axes”得到“AttributeError:'function'对象没有属性“Axes””,并通过编写“set_xscale(1)得到“TypeError:set_xscale()需要2个位置参数,但给出了3个” ,“线性”)`。 (4认同)

Ami*_*hti 6

下面是我最喜欢的设置轴比例的方法:

plt.xlim(-0.02, 0.05)
plt.ylim(-0.04, 0.04)
Run Code Online (Sandbox Code Playgroud)