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()
关于python绘制浅色范围曲线的文章就介绍至此,更多相关python浅色范围曲线内容请搜索编程宝库以前的文章,希望大家多多支持编程宝库!
1. 导入必要的包我使用了seaborn,通过sns.set_style可以让绘制出来的图更漂亮,而且可以切换不同的类型import reimport seaborn as ...