Python的plt.show()不显示图片

目录

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')     # 保存图片

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

物联沃分享整理
物联沃-IOTWORD物联网 » Python的plt.show()不显示图片

发表评论