目录

plt.show()之后不显示图片的问题

画loss曲线教程

plt.show()之后不显示图片的问题

1. 如果系统为windows等系统,那就看别的教程吧(因为我没有遇到过这类问题),比如:

(26条消息) python之matplotlib中plt.show()不显示图的解决办法_Lovefeifei20200119的博客-CSDN博客_plt.show()https://blog.csdn.net/qq_28019591/article/details/89404773

 2. 对于Linux系统,plt.show()无法显示图片是非常正常的,因为Linux系统本来就没有图形界面。即使在windows系统上,只要VScode/PyCharm等编辑器远程连接的是Linux服务器,就无法显示。

那么要怎样看到图片呢?很简单,把图片保存下来,再查看。

import matplotlib.pyplot as plt

plt.savefig('zz.png') # 引号里是保存的路径(像此处示例就是相对路径,保存在当前文件夹)

然后就可以在保存的路径下找到图片,用编辑器查看啦!

3. 还有一个较为复杂的方法就是,VScode+Xshell+图形界面软件(如XManager等)联动,用echo $DISPLAY配置环境变量......有兴趣的可以尝试,小白博主觉得,还是savefig吧,省事。

 

画loss曲线教程

小白博主在这里提供一种最简单的画loss曲线的方法。

1. 首先收集数据——包括横坐标(iters)和纵坐标(loss)。

最简单的方法就是新建一个.txt文件,将iters和loss写进去,以空格分开,如下图所示(第一列是VScode显示的行数,不是自己写的)。

 

 2. 读取数据并画图。

import numpy as np

import matplotlib.pyplot as plt

# np.loadtxt可以直接加载.txt文件中的数据(这里画了两个图,所以加载了两个.txt)

data1_loss = np.loadtxt("zhuhai/loss.txt", dtype=float, delimiter=' ') # 第1个参数是文件路径,第2个读取的数据类型,第3个参数是分隔标志(这里示例以空格为标志分隔)

data2_loss = np.loadtxt("zhuhai_SE/lossSE.txt", dtype=float, delimiter=' ')

# 读取横纵坐标

x1 = data1_loss[:,0] # 横坐标为所有行的第0列

y1 = data1_loss[:,1] # 纵坐标为所有行的第1列

x2 = data2_loss[:,0]

y2 = data2_loss[:,1]

# 画图

plt.plot(x1, y1,'r-', label = u'woSE-total_loss') # 横坐标,纵坐标,颜色,标签(图例)

plt.plot(x2,y2, 'b-', label = u'SE-total_loss')

plt.title('Compare loss for different structure in training') # 图名称

plt.legend() # 图例的位置,可以有参数,无参数的话默认右上角

plt.xlabel(u'iters') # 横轴名称

plt.ylabel(u'loss') # 纵轴名称

plt.savefig('zz_1&2.png') # 保存图片

 画完图就可以查看保存的图片了。注意,多条曲线画在同一个图上时,画图的先后顺序会影响观看效果,后画的曲线会遮挡先画的曲线。

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: