【Matplotlib】科研绘图——折线图

news2024/11/14 11:25:50

文章目录

  • 1、导入
  • 2、定义Font及Style
  • 3、设置图像大小及坐标刻度
  • 4、数据准备
  • 5、自定义draw
  • 6、其他设置
  • 7、效果图

1、导入

import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
import numpy as np
import pandas as pd
%matplotlib inline

2、定义Font及Style

plt.style.use("seaborn-v0_8-whitegrid")
palette = plt.get_cmap('Set1')
font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 60, #32
}
font2 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size'   : 38, #24/28
}

3、设置图像大小及坐标刻度

fig=plt.figure(figsize=(18,12.6)) #12,8
my_x_ticks=np.arange(10,70,10)
lab = [r'10',r'20',r'30',r'40',r'50',r'60']#
#my_y_ticks=np.arange(50,90,10)

plt.xticks(ticks=my_x_ticks,labels=lab)
plt.yticks()

4、数据准备

iters=[10, 20, 30, 40,50,60]

y1 = [79,77,74,76,73 ,71 ]

y2 = [68,66 ,65,64,61,62 ] 

y3 =[48,47,48 ,45  ,44,42 ]

y4 = [58,56,55 ,53 ,54,50]

y5 = [39,38 ,37,36  ,34 ,30]
#y_formatter = FormatStrFormatter('%1.1f')

#下面数据可以用numpy根据任务需求算出
std1 =[1.47,1.46,2.01,1.11,2.07,1.95] 
std2 = [2.78,2.77, 2.34,2.28,2.34,2.89]
std3 = [1.5,2.7,2.0,1.7,2.0,2.3]
std4 = [2.64,3.64,1.69,3.32,2.29,1.97]
std5 = [3.00,2.49,3.40,3.10, 2.47,3.46]


r11 = list(map(lambda x: x[0]-x[1], zip(y1,std1)))#上方差
r12 = list(map(lambda x: x[0]+x[1], zip(y1, std1)))#下方差

r21 = list(map(lambda x: x[0]-x[1], zip(y2,std2)))#上方差
r22 = list(map(lambda x: x[0]+x[1], zip(y2, std2)))#下方差

r31 = list(map(lambda x: x[0]-x[1], zip(y3,std3)))#上方差
r32 = list(map(lambda x: x[0]+x[1], zip(y3, std3)))#下方差


r41 = list(map(lambda x: x[0]-x[1], zip(y4,std4)))#上方差
r42 = list(map(lambda x: x[0]+x[1], zip(y4, std4)))#下方差

r51 = list(map(lambda x: x[0]-x[1], zip(y5,std5)))#上方差
r52 = list(map(lambda x: x[0]+x[1], zip(y5, std5)))#下方差

5、自定义draw

def draw_line(name_of_alg, color_index, y,r1,r2, marker):
    if isinstance(color_index, str) :
        color = color_index
    else: 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, y, color=color,label=name_of_alg,linewidth=8,
             marker=marker, markeredgecolor=color, markersize='24', markeredgewidth=4,markerfacecolor='none')
    plt.fill_between(iters, r1, r2, color=color, alpha=0.2)

draw_line("A",4,y1,r11,r12, 'D')
draw_line("B",2,y2,r21,r22, 's')
draw_line("C",1,y3,r31,r32, 'o')
draw_line("D",3,y4,r41,r42, 'v')
draw_line("E",7,y5,r51,r52, 'p')

6、其他设置

plt.xticks(fontsize=50)#25
plt.yticks(fontsize=50)#25
plt.xlabel('X(%)',font1)
plt.ylabel('Y(%)',font1)
#plt.legend(loc='lower left',prop=font2, frameon=True, fancybox=True,framealpha=0.5)
#网格
plt.legend(loc='lower left',prop=font2, frameon=True, fancybox=True,framealpha=0.5)
#标题
plt.title("EXAMPLE",fontsize=60)
#保存为pdf
plt.savefig('./EXAMPLE.pdf')
plt.show()

7、效果图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1423116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

合肥工业大学计算机试卷和笔记

总结了一些试卷和笔记,但是csdn上不方便上传pdf,所以上传到github了,欢迎Issue和fork 地址: https://github.com/Martin-share/hfut-cs-final-exams-and-note 持续更新-------2024-01-30

企业做新媒体矩阵不可忽视的四大问题

互联网进入下半场,存量市场竞争日益加剧,获客成本不断增加,越来越多的品牌开始数字化转型,而布局社交媒体矩阵则成为了大多数品牌的必然选择。 通过社交媒体的图文、短视频、直播等形式营销推广,不断做深、做透、做细&…

如何override已经存在的约束

文章目录 前言一、如何override已经存在的约束总结 前言 在验证过程中,我们基本都是基于spec,做正常的约束,当我们测特定corner场景的时候,希望能够用新的约束,去override已经存在的约束。 一、如何override已经存在的…

windows下postgresql的安装使用

一、安装 1、安装包安装 1.1 下载exe安装包 选择安装包:官网 或者点击下载:postgresql-12.12-1-windows-x64.exe Tip:此时若报错:There has been an error.An error occured executing the Microsoft VC runtime installer。 参…

性价比之王,65W 2C1A降功率方案隆重推出

随着电子市场发展,现在越来越多的设备都具有快充功能,快充设备越来越普及;单口快充已经很难满足人们的需求,市场对多口快充配件的需求量日益增加。同时随着氮化镓的普及,适配器功率越做越大,功率的合理利用…

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] }

[Bug] [OpenAI] [TypeError: fetch failed] { cause: [Error: AggregateError] } ubuntu20 win10 edge浏览器访问 服务器部署 页面打开后想使用chatgpt报错了 rootcoal-pasi1cmp:/www/wwwroot/ChatGPT-Next-Web# PORT3000 yarn start yarn run v1.22.19 warning package.json:…

c++|类和对象(下)

一、再谈构造函数 1.1初始化列表 在上一章节中,对于类我们可以形象的比喻为房子的图纸,而真正对于类的初始化可以比喻为建造了一个实体房子,即创建对象,对于房子中的各个房间都有特定的位置构造,那么对于类中的成员变…

运维SRE-01 目录结构体系、find

1. Linux目录结构体系 Linux 核心目录的核心文件概述 1) /etc下面 a) /etc/hosts 主机ip地址与域名(主机名)对应关系 b) /etc/hostname 主机名 c) /etc/sysconfig/network-scripts/ifcfg-ens33或ifcfg-eth0 Linux网卡配置文件 d)了解 /etc/i…

Prometheus的语句

1、node_cpu_seconds_total:监控项数据、指标项 2、node_cpu_seconds_total{cpu"0"}:时间序列 node_cpu_seconds_total 监控项数据(指标项) {cpu"0"} 标签 node_cpu_seconds_total{cpu"0"}&…

windows设置openDNS

windows环境搭建专栏🔗点击跳转 win系统环境搭建(十九)——windows设置openDNS 文章目录 win系统环境搭建(十九)——windows设置openDNS1.什么是openDNS?2.openDNS的ip是多少?3.设置DNS3.1 设置…

Android开发学习-中级控件

Drawable Android把所有能够显示的图形都抽象为Drawable类(可绘制的)。 这里的图形不止是图片,还包括色块、画板、背景等。 包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一…

数据中心IP代理是什么?有何优缺点?海外代理IP全解

海外代理IP中,数据中心代理IP是很热门的选择。这些代理服务器为用户分配不属于 ISP(互联网服务提供商)且来自第三方云服务提供商的 IP 地址,是分配给位于数据中心的服务器的 IP 地址,通常由托管和云公司拥有。 这些 I…

搭建幻兽帕鲁需要什么样的服务器

作为一个开放世界生存制造类游戏《幻兽帕鲁》收获了空前绝后的热度,玩家们在游戏中通过在地图上捕捉收集到的“帕鲁”进行训练,合理利用他们的能力进行战斗,建立自己的家园、开辟新的世界、解锁新的冒险情节,获取更多游戏信息增加…

【JavaEE】UDP协议与TCP协议

作者主页:paper jie_博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文于《JavaEE》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造&…

LabVIEW传感器通用实验平台

LabVIEW传感器通用实验平台 介绍了基于LabVIEW的传感器实验平台的开发。该平台利用LabVIEW图形化编程语言和多参量数据采集卡,提供了一个交互性好、可扩充性强、使用灵活方便的传感器技术实验环境。 系统由硬件和软件两部分组成。硬件部分主要包括多通道数据采集卡…

华为云WAF,开启web网站的专属反爬虫防护罩

背景 从保护原创说起 作为一个原创技术文章分享博主,日常除了Codeing就是总结Codeing中的技术经验。 之前并没有对文章原创性的保护意识,直到在某个非入驻的平台看到了我的文章,才意识到,辛苦码字、为灵感反复试验创作出来的文…

Java学习笔记(十一)——常用类

一、包装类 (一)包装类和基本数据类型的转换 ​编辑 (二)包装类型和String类型的相互转换 (三)Integer类和Character类的常用方法 二、String (一)创建String对象的两种方式 …

Redis核心技术与实战【学习笔记】 - 11.响应延迟的波动问题及解决方案

在 Redis 的实际应用中,有一个非常严重的问题,就是 Redis 突然变慢了。举个例子,在秒杀场景下,一旦 Redis 变慢了,大量的用户下单请求就会被拖慢,也就是说,用户提交了下单申请,确没有…

【C语言】【力扣】1.两数之和

一、个人思考过程 int* twoSum(int* nums, int numsSize, int target, int* returnSize) {for(int i0;i<numsSize;i){for(int j0;j<numsSize;j){if((nums[i]nums[j]target)&&(i!j)){}}} 完成度&#xff1a;实现对nums[]数组的遍历和两数之和的判断。 问题&…

基于Java SSM框架实现药品销售系统项目【项目源码+论文说明】

基于java的SSM框架实现药品销售系统演示 摘要 本论文主要论述了如何使用JAVA语言开发一个药品销售系统 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述药品销…