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参数设置