python绘制浅色范围曲线

借鉴:python绘制lost(损失)曲线 加 方差范围

直接上效果图:

 上代码:

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()

 

 

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值