matplotlib设置坐标轴刻度间隔

本来是想让横轴显示1-20的整数,刻度之间间隔1,但是画出图来却显示有浮点数

plt.title('train loss')
plt.plot(np.arange(1,len(losses)+1), losses)
plt.plot(np.arange(1,len(eval_losses)+1), eval_losses)

matplotlib设置坐标轴刻度间隔_第1张图片
经查资料,找到两种方法:
第一种是通过MultipleLocator类来实现

from matplotlib.pyplot import MultipleLocator #导入此类,设置坐标轴间隔
plt.title('train loss')

x_major_locator=MultipleLocator(1)
ax=plt.gca()
ax.xaxis.set_major_locator(x_major_locator)

plt.plot(np.arange(1,len(losses)+1), losses)
plt.plot(np.arange(1,len(eval_losses)+1), eval_losses)

matplotlib设置坐标轴刻度间隔_第2张图片
第二种是将横轴坐标范围转换成字符串

plt.title('train loss')
plt.plot(np.arange(1,len(losses)+1).astype(np.str), losses)
plt.plot(np.arange(1,len(eval_losses)+1), eval_losses)

matplotlib设置坐标轴刻度间隔_第3张图片

你可能感兴趣的:(python,matplotlib,python,可视化)