实现过程
首先将全部的txt文档保存为下面这种形式
然后根据迭代取出里面的值放入集合中,然后根据集合对应的值放入到X-value和Y-value中,通过plt绘制即可
具体代码
import matplotlib.pyplot as plt
input_txt1=r'.\LeakyReLU.txt'
input_txt2=r'.\Mish.txt'
input_txt3=r'.\PReLU.txt'
input_txt4=r'.\ReLU.txt'
f1=open(input_txt1)
f2=open(input_txt2)
f3=open(input_txt3)
f4=open(input_txt4)
epoch=[]
LeakyReLU,Mish,PReLU,ReLU=[],[],[],[]
for line in f1:
line = line.strip('\n')
line = line.split(' ')
epoch.append(float(line[0]))
LeakyReLU.append(float(line[1]))
for line in f2:
line = line.strip('\n')
line = line.split(' ')
Mish.append(float(line[1]))
for line in f3:
line = line.strip('\n')
line = line.split(' ')
PReLU.append(float(line[1]))
for line in f4:
line = line.strip('\n')
line = line.split(' ')
ReLU.append(float(line[1]))
f1.close()
f2.close()
f3.close()
f4.close()
# 如果要显示中文或者负号就加入这两行
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 输出保存指定尺寸的图 LeakyReLU,Mish,PReLU,ReLU
plt.figure(figsize=(10, 5))
plt.plot(epoch, LeakyReLU, 'o-', color='r', label='LeakyReLU')
plt.plot(epoch, Mish, '1-', color='m', label='Mish')
plt.plot(epoch, PReLU, ':', color='b', label='PReLU')
plt.plot(epoch, ReLU, color='y', label='ReLU')
# 使用自定义的样式文件
plt.style.use(('dark_background'))
# X,Y,title表示
plt.xlabel('epochs',fontsize=10)
plt.ylabel('acc',fontsize=10) # y轴表示
plt.title("activate_line_chart",fontsize=10) # 图标标题表示
# plt.grid() # 显示网格
plt.legend(['LeakyReLU-{}'.format(max(LeakyReLU)), 'Mish-{}'.format(max(Mish)), 'PReLU-{}'.format(max(PReLU)), 'ReLU-{}'.format(max(ReLU))]) # 设置折线名称
plt.tick_params(axis="both")
plt.show()