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

文章目录

  • 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_indexelse: 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.hqwc.cn/news/443278.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Tomcat与网络8】从源码看Tomcat的层次结构

在前面我们介绍了如何通过源码来启动Tomcat,本文我们就来看一下Tomcat是如何一步步启动的,以及在启动过程中,不同的组件是如何加载的。 一般,我们可以通过 Tomcat 的 /bin 目录下的脚本 startup.sh 来启动 Tomcat,如果…

故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍源码设计参考资料效果一览 文章概述 故障诊断 | 一文解决,CNN卷积神经网络故障诊断(Matlab) 专栏介绍 订阅【故障诊断】专栏,不定期更新机器学习和深度学习在故障诊断中的应用;订阅

微信开放平台第三方授权(第四篇)-wechat发送客服消息

1.发送客服消息 上一张介绍了发送消息需要用到的authorizer_access_token,和发送消息的接口结合使用,上面直接上代码。 重写WechatMpService 获取token,这个发消息会用到 package com.test.wechat.service;import com.test.wechat.config.WechatMpConf…

【百度Apollo】探索创新之路:深入了解Apollo开放平台

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下…

VueFire:一个一流的 Vue 和 Firebase 体验,包括对 Nuxt 的支持,现在已经稳定了

VueFire,一个一流的 Vue 和 Firebase 体验 — 包括对 Nuxt 的支持,现在已经稳定了。 Vue 和 Firebase 现在比以往任何时候都更好了。 构建更好的VueFire 去年,我们宣布与 Eduardo San Martin Morote 合作,构建一个成熟的 Vue 和…

【INTEL(ALTERA)】带有浮点单元 (FPU) Nios® V/g 处理器在 英特尔® Cyclone10 GX 设备中执行不正确的浮点运算

说明 由于 英特尔 Quartus Prime Pro Edition 软件版本 23.3 存在一个问题,当使用 Nios V/g 处理器并在 英特尔 Cyclone 10 GX 设备中启用 FPU 时,浮点运算无法按预期进行。 Nios V/g 处理器 – 启用浮点单元 解决方法 请勿在 英特尔 CycloneNios 10 G…

消息中间件之RocketMQ源码分析(三)

RocketMQ中的Consumer启动流程 RocketMQ客户端中有两个独立的消费者实现类分别为DefaultMQPullConsumer和DefaultMQPushConsumer, DefaultMQPullConsumer DefaultMQPullConsumer,该消费者使用时需要用户主动从Broker中Pull消息和消费消息,提交消费位点…

【C/C++】深入理解--函数重载(什么是函数重载?为什么要有函数重载?)

目录 一、前言 二、 函数重载 🍎什么是函数重载 🍐函数重载的条件 🍇函数重载的注意点 🍉为什么要有函数重载 🍓为何C语言不支持函数重载,反倒C可以? 💦 Linux环境下演示函数重…

Linux--redhat9创建软件仓库

1.插入光盘,挂载镜像 模拟插入光盘: 点击:虚拟机-可移动设备-CD/DVD 设备状态全选,使用ISO影响文件选择当前版本镜像,点击确认。 2.输入: df -h 可以显示,默认/dev/sr0文件为光盘文件,挂载点为/run/media/root/镜像…

【数据结构 03】循环队列

一、原理 循环队列从功能角度具有队列的性质,即遵从先进先出原则,但是其存储方式是顺序存储。 循环队列的存储空间大小通常都是固定的,通过前指针和尾指针的移动控制循环队列数据的增删。 特征:顺序存储、先进先出、容量有限&a…

CISAW和CISP-PTE证书选择指南

📣在信息安全领域,选择合适的证书可以为你的职业生涯增添光彩。很多从事信息渗透行业的朋友经常讨论CISP-PTE和CISAW之间的选择问题。今天就从4个方面带你详细了解这两张证书,帮你做出明智的选择! 1️⃣证书的行业前景 &#x1f4…

科技云报道:新趋势下,国产数据库或“春山可望”

科技云报道原创。 从540亿元到1286亿元——这是中国通信标准化协会大数据技术标准推进委员会针对中国数据库行业给出的一份预测报告。 报告指出,未来五年,中国数据库行业将从百亿级市场跨越成为千亿级市场。 最近两年,中国的数据库行业似乎…