Python matplotlib - 设置x轴比例

Posted

技术标签:

【中文标题】Python matplotlib - 设置x轴比例【英文标题】:Python matplotlib - setting x-axis scale 【发布时间】:2017-09-03 08:02:47 【问题描述】:

我有这个图表显示以下内容:

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()

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

无论“scoreList”中的值是什么,我都希望比例以 1 为单位。目前让我的 x 轴在 0.5 秒内而不是 1 秒内上升。

如何设置让它只在 1 内上升?

【问题讨论】:

【参考方案1】:

嘿,看来您需要设置 x 轴刻度。

试试

matplotlib.axes.Axes.set_xscale(1, 'linear')

Here's the documentation for that function

【讨论】:

这在 matplotlib 3 中是不正确的。它应该是 plt.gca().set_xscale('linear')。否则,您将通过编写plt.axes.Axes 得到AttributeError: 'function' object has no attribute 'Axes',并通过编写set_xscale(1, 'linear') 得到TypeError: set_xscale() takes 2 positional arguments but 3 were given【参考方案2】:

以下是我最喜欢的设置坐标轴比例的方法:

plt.xlim(-0.02, 0.05)
plt.ylim(-0.04, 0.04)

【讨论】:

【参考方案3】:

只需自己设置 xticks。

plt.xticks([1,2,3,4])

plt.xticks(valueX)

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

plt.xticks(range(1, 5))

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

plt.xticks(range(min(valueX), max(valueX)+1))

【讨论】:

以上是关于Python matplotlib - 设置x轴比例的主要内容,如果未能解决你的问题,请参考以下文章

python使用matplotlib可视化为X轴设置轴标签位置及其对应的标签文本(set label locations and corresponding labels in matplotlib

python使用matplotlib可视化为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)

Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

Python matplotlib之函数图像绘制、线条rc参数设置

用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围

4.13Python数据处理篇之Matplotlib系列(十三)---轴的设置