【转载】python画带方差的折线图(csdn上最简洁的代码之一附上)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/a1920993165/article/details/122277716
python画带方差的折线图
画好后效果图(直接一个图的)
实现代码如下
点击查看代码
import numpy as np import matplotlib.pyplot as plt from matplotlib import pyplot plt.style.use('seaborn-whitegrid') palette = pyplot.get_cmap('Set1') font1 = {'family' : 'Times New Roman', 'weight' : 'normal', 'size' : 32, } fig=plt.figure(figsize=(20,10)) iters=list(range(7)) #这里随机给了alldata1和alldata2数据用于测试 alldata1=[]#算法1所有纵坐标数据 data=np.array([2,4,5,8,11,13,15])#单个数据 alldata1.append(data) data=np.array([2,3,6,12,13,13,15]) alldata1.append(data) data=np.array([2,2,7,9,13,14,16]) alldata1.append(data) alldata1=np.array(alldata1) alldata2=[]#算法2所有纵坐标数据 data=np.array([2,4,5,8,10,10,11])#单个数据 alldata2.append(data) data=np.array([3,3,3,6,7,8,10]) alldata2.append(data) data=np.array([3,3,5,5,6,7,9]) alldata2.append(data) alldata2=np.array(alldata2) def draw_line(name_of_alg,color_index,datas): color=palette(color_index) avg=np.mean(datas,axis=0) std=np.std(datas,axis=0) 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.plot(iters, avg, color=color,label=name_of_alg,linewidth=3.5) plt.fill_between(iters, r1, r2, color=color, alpha=0.2) draw_line("alg1",1,alldata1) draw_line("alg2",2,alldata2) plt.xticks(fontsize=22) plt.yticks(fontsize=22) plt.xlabel('Time(s)',fontsize=32) plt.ylabel('metric',fontsize=32) plt.legend(loc='upper left',prop=font1) plt.title("instance",fontsize=34)
画好后效果图(在ax子图里面的)
点击查看代码
import numpy as np import matplotlib.pyplot as plt from matplotlib import pyplot plt.style.use('seaborn-whitegrid') palette = pyplot.get_cmap('Set1') font1 = {'family' : 'Times New Roman', 'weight' : 'normal', 'size' : 18, } fig=plt.figure(figsize=(20,10)) iters=list(range(7)) #这里随机给了alldata1和alldata2数据用于测试 alldata1=[]#算法1所有纵坐标数据 data=np.array([2,4,5,8,11,13,15])#单个数据 alldata1.append(data) data=np.array([2,3,6,12,13,13,15]) alldata1.append(data) data=np.array([2,2,7,9,13,14,16]) alldata1.append(data) alldata1=np.array(alldata1) alldata2=[]#算法2所有纵坐标数据 data=np.array([2,4,5,8,10,10,11])#单个数据 alldata2.append(data) data=np.array([3,3,3,6,7,8,10]) alldata2.append(data) data=np.array([3,3,5,5,6,7,9]) alldata2.append(data) alldata2=np.array(alldata2) for i in range(2): color=palette(0)#算法1颜色 ax=fig.add_subplot(1,2,i+1) avg=np.mean(alldata1,axis=0) std=np.std(alldata1,axis=0) r1 = list(map(lambda x: x[0]-x[1], zip(avg, std)))#上方差 r2 = list(map(lambda x: x[0]+x[1], zip(avg, std)))#下方差 ax.plot(iters, avg, color=color,label="algo1",linewidth=3.0) ax.fill_between(iters, r1, r2, color=color, alpha=0.2) color=palette(1) avg=np.mean(alldata2,axis=0) std=np.std(alldata2,axis=0) r1 = list(map(lambda x: x[0]-x[1], zip(avg, std))) r2 = list(map(lambda x: x[0]+x[1], zip(avg, std))) ax.plot(iters, avg, color=color,label="algo2",linewidth=3.0) ax.fill_between(iters, r1, r2, color=color, alpha=0.2) ax.legend(loc='lower right',prop=font1) ax.set_xlabel('Outer loop iterations',fontsize=22) ax.set_ylabel('Objectives',fontsize=22)
本博客是博主个人学习时的一些记录,不保证是为原创,个别文章加入了转载的源地址,还有个别文章是汇总网上多份资料所成,在这之中也必有疏漏未加标注处,如有侵权请与博主联系。
如果未特殊标注则为原创,遵循 CC 4.0 BY-SA 版权协议。
posted on 2024-06-04 10:12 Angry_Panda 阅读(196) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2023-06-04 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC的C语言运行环境及作业的配置
2021-06-04 【转载】 模型融合
2017-06-04 matplotlib.pyplot中add_subplot方法参数111的含义
2017-06-04 转载:(论文) 二次指数平滑法中确定初始值的简便方法