本来是想让横轴显示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)
经查资料,找到两种方法:
第一种是通过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)
第二种是将横轴坐标范围转换成字符串
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)