Python 如何提高matplotlib中y轴的精度以绘制距离较远的闭合曲线

Python 如何提高matplotlib中y轴的精度以绘制距离较远的闭合曲线,python,matplotlib,keras,deep-learning,Python,Matplotlib,Keras,Deep Learning,我正在绘制同一任务中两种不同CNN架构的训练和验证损失。损失在小数点后第三位不同。当我使用matplotlib.pyplot绘制损失时,曲线太近,看不到它们之间的差异 data1 = pd.read_csv('/content/final arch1 loss.csv') data2 = pd.read_csv('/content/final arch2 loss.csv') fig, ax = plt.subplots() f = lambda x,pos: str(x).rstrip('0

我正在绘制同一任务中两种不同CNN架构的训练和验证损失。损失在小数点后第三位不同。当我使用matplotlib.pyplot绘制损失时,曲线太近,看不到它们之间的差异

data1 = pd.read_csv('/content/final arch1 loss.csv')
data2 = pd.read_csv('/content/final arch2 loss.csv')

fig, ax = plt.subplots()
f = lambda x,pos: str(x).rstrip('0').rstrip('.')
ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(0.001))
ax.yaxis.set_major_formatter(matplotlib.ticker.FuncFormatter(f))

data1_loss = data1.loss
data1_val_loss = data1.val_loss

data2_loss = data2.loss
data2_val_loss = data2.val_loss

plt.plot(data1_loss, label='arch1 train loss')
plt.plot(data1_val_loss, label='arch1 val loss')
plt.plot(data2_loss, label='arch2 train loss')
plt.plot(data2_val_loss, label='arch2 val loss')
plt.legend()
plt.axis('off')
plt.savefig('graph.png')
plt.show()

我按照其他答案来增加y轴上的记号数,但这似乎根本无法将图表分开。如何提高区分这两种体系结构的图形的精度


编辑- 正如Trenton McKinney和Jody Klymak在评论中所建议的那样,使用log scale(使用ax.set_yscale('log')和ax.plot())有助于将图形拉得更远-

这是一个数据处理问题。您可以减去基准案例或除以基准案例。您可以在日志空间中显示。感谢您的建议,我可以尝试绘制差异。但是在matplotlib或任何其他库中都没有这样做的方法,因为它们是用于科学计算的,并且必须具有e-3级的规模。您可能应该使用
ax.plot(…)
,而不是
plt.plot(…)
并尝试
ax.set_yscale('log')
matplotlib广泛用于科学计算。现在还不清楚你期望在这里发生什么。您可能想试试ax.set_ylim()?