本篇文章小编给大家分享一下python绘制浅色范围曲线代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
效果图:
上代码:
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:pycharmclass20211008alexnet_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()