Python使用Matplotlib绘制带置信区间的损失曲线
本文介绍如何利用Python的Matplotlib和Seaborn库绘制带有浅色填充范围的曲线图。通过计算多组数据的均值与标准差,使用fill_between函数可视化误差范围,适用于展示模型训练过程中的准确率或损失值波动,帮助直观分析数据稳定性。
Python绘制带方差范围的损失曲线
参考示例:如何使用Python绘制包含方差范围的损失(Loss)曲线。
首先展示最终的绘图效果:

具体实现代码如下:
数据读取与统计量计算
import re
import seaborn as sns
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import shutil
import os
import math
sns.set_style('whitegrid')
path=r"F:\pycharm\class\20211008\alexnet_7class_srcData.csv"#数据的路径
#读取csv文件
csvfile = open(path, 'r')
plots = csv.reader(csvfile)
r1=[]
r2=[]
r3=[]
#将每一列数据表示一组,将数据分组存放
#row是按行读取,每一行有三个数据,分别存放
for row in plots:
r1.append(round(float(row[0]),3))
r2.append(round(float(row[1]),3))
r3.append(round(float(row[2]),3))
#求均值
avg=[]
for i in range(len(r1)):
avg.append(round((r1[i]+r2[i]+r3[i])/3,3))
#求方差
var=[]
for i in range(len(r1)):
var.append(((r1[i]-avg[i])**2+(r2[i]-avg[i])**2+(r3[i]-avg[i])**2)/3)
#求标准差
std=[]
for i in range(len(r1)):
std.append(math.sqrt(var[i]))
绘制边界曲线
#通过该公式算出平均值+-标准差的曲线,便于后面范围曲线的描绘
r1 = list(map(lambda x: x[0]-x[1], zip(avg, std)))
r2 = list(map(lambda x: x[0]+x[1], zip(avg, std)))
plt.rcParams["figure.figsize"] = (15,10)
plt.plot(r1)
plt.plot(r2)
plt.legend(['范围曲线'],fontsize=30)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel('Epoch Number',fontsize=20)
plt.ylabel('Accuracy',fontsize=20)
plt.ylim(0, 20)
plt.show()

填充置信区间区域
#横坐标由于fill_between函数
x=[]
for i in range(300):
x.append(i+1)
# import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (15,10)
plt.plot(avg)
plt.fill_between(x,r1, r2, color=cm.viridis(0.5), alpha=0.2)
plt.legend(['avg'],fontsize=30)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.xlabel('Epoch Number',fontsize=20)
plt.ylabel('Accuracy',fontsize=20)
plt.ylim(0, 20)
plt.show()
以上就是关于使用Python绘制浅色范围曲线的完整介绍,更多关于Python浅色曲线绘制的详细内容,建议查阅本站过往文章或继续阅读后续相关教程,感谢大家的支持!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













