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淺色范圍曲線內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: