在Python的Matplotlib中更改X轴步长

4
我创建了一个图表,显示了一组数据和直方图。但是令我困扰的是,如下所示,直方图上的X轴步长为20,因此最后一个值为140而不是150,这让我的强迫症非常严重。 有人能帮我解决这个问题吗?
生成的png文件:

https://istack.dev59.com/NhBYM.webp

以及相关的代码部分:

import numpy as np
import matplotlib.pyplot as plt

data = np.random.normal(60, 13, 500)

plt.hist(data, orientation = 'horizontal')
plt.grid()
plt.axis([0, 150, 0, 120])

plt.savefig('HISTOGRAM.png')

谢谢!


顺便说一句,我在网上查找答案,但没有找到有用的信息。也许是我用错了关键词...无论如何,我希望有人能帮助我! - user8289382
2个回答

3
您需要的是 plt.xticks() 函数:
import numpy as np
import matplotlib.pyplot as plt

data = np.random.normal(60, 13, 500)

plt.hist(data, orientation = 'horizontal')
plt.grid()
plt.axis([0, 150, 0, 120])
plt.xticks(np.arange(0,151,25))

plt.savefig('HISTOGRAM.png')

您可以在那里指定刻度线的位置。y轴同理。


0

缓解你强迫症的方法

import numpy as np
import matplotlib.pyplot as plt

data = np.random.normal(60, 13, 500)

plt.hist(data, orientation = 'horizontal')
plt.grid()
plt.xticks(np.linspace(0,150,16))
plt.axis([0, 150, 0, 120])
plt.savefig('HISTOGRAM.png')

基本上,plt.xticksplt.yticks接受列表作为输入,并将它们用作x轴和y轴上的标记。而np.linspace则生成一个由起始点、终止点和点数组成的数组。

编程愉快!


如果我没理解错的话:使用linspace我可以指定刻度数,而使用arange则可以指定刻度之间的空间。在这种情况下,第二种方法对我更有利。现在我可以安心地去睡觉了。谢谢你们两个!!! - user8289382
@benjibenjibenji,没错,完全正确,我也认为在这种情况下使用arange会更好。 - anand_v.singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接