首页 > 编程语言 >【转载】python画带方差的折线图(csdn上最简洁的代码之一附上)

【转载】python画带方差的折线图(csdn上最简洁的代码之一附上)

时间:2024-06-04 10:23:40浏览次数:30  
标签:alldata2 python color alldata1 csdn 画带 np array data

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/a1920993165/article/details/122277716



python画带方差的折线图

画好后效果图(直接一个图的)

image



实现代码如下

点击查看代码
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子图里面的)

image



点击查看代码
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)


标签:alldata2,python,color,alldata1,csdn,画带,np,array,data
From: https://www.cnblogs.com/devilmaycry812839668/p/18230265

相关文章

  • Zemax and Python联用
    透镜面的厚度与材料单透镜:两个面组成,第一个面赋予材料和厚度——即该透镜的材料和厚度;第二个面不需要赋予材料,其厚度为下一个透镜的空气间隔——即下一个物体的起始点以此厚度末端为原点胶合透镜:三个面组成,第一个面和第二个面赋予材料和厚度——即该胶合透镜第一个和第二个的......
  • ### Python 字典操作详解:从创建、增删改查到高级技巧全解析
    1.创建字典使用大括号{}创建空字典empty_dict={}print(empty_dict)#输出:{}使用dict函数创建字典#通过键值对创建字典person=dict(name="Alice",age=30,city="NewYork")print(person)#输出:{'name':'Alice','age':30,'c......
  • ### Python 列表操作详解:从创建、增删到高级技巧全覆盖
    1.创建列表使用list函数创建空列表:empty_list=list()print(empty_list)#输出:[]从字符串创建列表:string="hello"list_from_string=list(string)print(list_from_string)#输出:['h','e','l','l','o']......
  • python常用语法
    Python是一种非常流行的编程语言,因其简洁和易读性而备受欢迎。以下是一些Python的常用语法,涵盖基本语法、数据类型、控制流、函数、类和模块等内容。1.基本语法1.1打印输出print("Hello,world!")1.2变量赋值x=10y=20name="Alice"2.数据类型2.1数字inte......
  • python代码备忘录
    从斐波那契的递归实现到通用递归函数的实现deffibonacci(_target): if_target==0: return1 else returnfibonacci(_target-1)+fibonacci(_target-2) pass fibonacci(10)从上述算法中我们知道,每进入一层递归,递归函数都会在调用自己两次。故此方法实现的......
  • 【用Python画画】画奥运五环
    本文收录于《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢!文章目录一、前言二、代码示例三、知识点梳理四、总结一、前言本文介绍如何使用Python的海龟画图工具turtle,画奥运五环标志。什么是Python?Python是由荷兰人吉多·范罗......
  • python3 源码阅读-虚拟机运行原理
    原文阅读源码版本python3.8.3参考书籍<<Python源码剖析>>参考书籍<<Python学习手册第4版>>官网文档目录介绍Doc目录主要是官方文档的说明。Include:目录主要包括了Python的运行的头文件。Lib:目录主要包括了用Python实现的标准库。Modules:该目录中包含了所有用C......
  • 【Python】使用 Python 查询域名的 IP 地址
    我们都已经长大好多梦正在飞就像童年看到的红色的蜻蜓我们都已经长大好多梦还要飞就像现在心目中红色的蜻蜓                     ......
  • 【python】python古代玻璃制品的成分数据分析与可视化(源码+数据+课程论文)【独一无二】
    ......
  • 基于python的汽车数据可视化、推荐及预测系统
    博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实实在在的写点程序。......