如何在matplotlib.pyplot生成的坐标图中显示所有整数点
解决方案
你只需要手动指定X、Y轴的刻度为坐标轴覆盖范围内的所有整数即可,Matplotlib默认会自动选择稀疏刻度保证可读性,修改后完整代码如下:
import matplotlib.pyplot as plt import numpy as np plt.plot([-1, -4.5, 3.14, 1]) # 适配y轴所有整数刻度 y_min, y_max = plt.ylim() plt.yticks(np.arange(np.floor(y_min), np.ceil(y_max) + 1, 1)) # 适配x轴所有整数刻度 x_min, x_max = plt.xlim() plt.xticks(np.arange(np.floor(x_min), np.ceil(x_max) + 1, 1)) plt.show()
如果不想额外引入numpy,也可以用原生Python实现刻度生成:
import matplotlib.pyplot as plt plt.plot([-1, -4.5, 3.14, 1]) y_min, y_max = plt.ylim() plt.yticks(range(int(y_min // 1), int(y_max // 1) + 2)) x_min, x_max = plt.xlim() plt.xticks(range(int(x_min), int(x_max) + 1)) plt.show()
逻辑说明
plt.ylim()/plt.xlim()可以获取当前坐标轴的上下限范围,不需要手动写死刻度范围,适配不同输入数据- 用步长为1的序列生成所有整数作为刻度值,传入
plt.yticks()/plt.xticks()就能强制坐标轴显示所有整数刻度
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

