当前位置: 首页 > news >正文

SciencePlots绘图

简介

使用Python作为核心开发工具的机器学习和深度学习研究者自然会希望使用Matplotlib进行科研图表的绘制,但是Matplotlib默认的样式并不适合科研论文的出版,而SciencePlots就是为此定制的一系列科研绘图样式库,可以绘制很合适科研图表。

安装

具体的安装教程可以参考该项目Github开源地址,我这里简述一下。

PIP快速安装

使用下面的第一个命令安装最新版,第二个命令直接从PIP官方源下载安装,要落后最新版一个版本。

pip install git+https://github.com/garrettj403/SciencePlots.git
pip install SciencePlots

手动安装

上面的PIP安装会自动下载所有的*.mplstyle文件并将其放在当前环境的matplotlib的stylelib文件夹下,这个步骤也可以手动完成。Clone官方仓库到本地,将其中style文件夹下的所有以mplstyle为后缀的文件拷贝到matplotlib的资源目录下的stylelib文件夹,获得matplotlib资源目录可以通过下面的代码段获取。

import matplotlib
print(matplotlib.get_configdir())

获得该目录后直接访问,新建stylelib文件夹(若有则不需要新建),将所有*.mplstyle文件放到该目录下即可。

在这里插入图片描述

使用

在所有的样式中,science.mplstyle为最核心的样式,使用该样式的方法和matpl切换样式的方法一致。

import matplotlib.pyplot as plt
plt.style.use('science')

当然,也可以指定多个样式,如下面这段代码中,ieee样式在某些部分会覆盖science样式以达到绘图需求。

import matplotlib.pyplot as plt
plt.style.use(['science','ieee'])

上面这几种方法都是对整个脚本生效的,想要对某个部分绘图的代码生效,则只需要使用with语句进行上下文管理即可。

with plt.style.context(['science', 'ieee']):plt.figure()plt.plot(x, y)plt.show()

案例

下面三个图是science样式、science+ieee以及science+ieee+grid样式的效果,在样式中加入no-latex以禁用Latex字体渲染,这是因为science样式默认采用Latex渲染,若没有安装Latex或者考虑到其比较耗时,禁用即可。


science

science+ieee

science+ieee+grid

上述效果的代码如下。

import numpy as np
import matplotlib.pyplot as plt
def model(x, p):return x ** (2 * p + 2) / (2 + x ** (2 * p))
x = np.linspace(0.75, 1.25, 201)
with plt.style.context(['science', 'no-latex']):fig, ax = plt.subplots()for p in [10, 15, 20, 30, 50, 100]:ax.plot(x, model(x, p), label=p)ax.legend(title='Order')ax.set(xlabel='Voltage (mV)')ax.set(ylabel='Current (μA)')ax.autoscale(tight=True)fig.savefig('fig1.png', dpi=300)
with plt.style.context(['science', 'ieee', 'no-latex']):fig, ax = plt.subplots()for p in [10, 20, 50]:ax.plot(x, model(x, p), label=p)ax.legend(title='Order')ax.set(xlabel='Voltage (mV)')ax.set(ylabel='Current (μA)')ax.autoscale(tight=True)fig.savefig('fig2.png', dpi=300)
with plt.style.context(['science','ieee', 'grid', 'no-latex']):fig, ax = plt.subplots()for p in [10, 20, 50]:ax.plot(x, model(x, p), label=p)ax.legend(title='Order')ax.set(xlabel='Voltage (mV)')ax.set(ylabel='Current (μA)')ax.autoscale(tight=True)fig.savefig('fig3.png', dpi=300)

补充说明

如果有论文里绘图想要使用Matplotlib又不想花费太多精力定制绘图样式,SciencePlots是很不错的选择,已经有不少发表的文章采用该库了,感兴趣可以尝试一下。

相关文章:

SciencePlots绘图

简介 使用Python作为核心开发工具的机器学习和深度学习研究者自然会希望使用Matplotlib进行科研图表的绘制,但是Matplotlib默认的样式并不适合科研论文的出版,而SciencePlots就是为此定制的一系列科研绘图样式库,可以绘制很合适科研图表。 …...

【Spark分布式内存计算框架——Spark SQL】12. External DataSource(下)rdbms 数据

6.7 rdbms 数据 回顾在SparkCore中读取MySQL表的数据通过JdbcRDD来读取的,在SparkSQL模块中提供对应接口,提供三种方式读取数据: 方式一:单分区模式 方式二:多分区模式,可以设置列的名称,作为…...

【React】React入门--更改状态、属性、表单的非受控组件和受控组件

🎀个人主页:努力学习前端知识的小羊 感谢你们的支持:收藏🎄 点赞🍬 加关注🪐 文章目录setState属性(props)属性vs状态非受控组件受控组件setState this.state是纯js对象,在vue中,dat…...

0216-0218复习:继承

目录 继承 一、基本介绍 二、示意图 三、基本语法 四、入门案例 父类 子类1 子类2 main方法 五、继承细节 第一条 第二条 第三条 第四条 ​编辑 第五条 第六条 第七条 第八条 第九条 第十条 六、继承本质 七、练习题 第三题 继承 一、基本介绍 继承可以…...

【数据库】HNU数据库系统期末考试复习重点

前言 今天刚结束考试,考的范围基本没有超过这套重点内容,觉得整理的这份资料还算比较有用,遂睡前整理了下分享给大家,希望能帮到要准备数据库期末又时间紧张的学弟学妹~ 文章参考: 1.课程老师发《数据库期末考试复习…...

SCI论文写作常见连词及适用情况

And:用于连接同类或相似的词、短语或句子,表达并列关系。Moreover:用于连接两个相似或相关的想法,表达附加的信息或思想。Furthermore:用于连接两个相似或相关的想法,表达更进一步的信息或思想。In additio…...

Spring中的数据校验--进阶

分组校验 场景描述 在实际开发中经常会遇到这种情况:添加用户时,id是由后端生成的,不需要校验id是否为空,但是修改用户时就需要校验id是否为空。如果在接收参数的User实体类的id属性上添加NotNull,显然无法实现。这时…...

多种方法解决谷歌(chrome)、edge、火狐等浏览器F12打不开调试页面或调试模式(面板)的问题。

文章目录1. 文章引言2. 解决问题3. 解决该问题的其他方法1. 文章引言 不论是前端开发者,还是后端开发者,我们在调试web项目时,偶尔弹出相关错误。 此时,我们需要打开浏览器的调试模式,如下图所示: 通过浏…...

默认生成的接口实现方法体的问题

随着集成开发环境越来越强大,编程开发工作也变得越来越高效,很多的代码都不需要逐字输入,可以利用代码生成和自动补全来辅助开发。但是这样的便利也可能引起一些疏忽,本文就Java开发中默认生成的接口实现方法来谈谈以前遇到的问题…...

【OJ】十级龙王间的决斗

📚Description: 在《驯龙高手2》,最精彩的高潮出现在两只阿尔法决斗的时候。 驯龙高手中的十星龙王又称喷冰龙,有且只有两只,是最大型的龙,所有其他龙都要膜拜它(当然,幼龙除外)&…...

java 自定义注解

文章目录前言Annotation包自定义注解自定义注解示例参考文章:java 自定义注解 用处_java注解和自定义注解的简单使用参考文章:java中自定义注解的作用和写法前言 在使用Spring Boot的时候,大量使用注解的语法去替代XML配置文件,十…...

产品经理知识体系:2.如何进行商业需求分析?

商业需求分析 思考 笔记 用户细分: 核心用户、用户分级 用户关系: 如何维护用户关系、维护等成本 关系和商业模式的整合 核心价值: 解决什么问题,满足什么需求,最终带给用户什么价值 渠道通道: 如何触达…...

EditPlus正则表达式替换字符串详解

正则表达式是一个查询的字符串,它包含一般的字符和一些特殊的字符,特殊字符可以扩展查找字符串的能力,正则表达式在查找和替换字符串的作用不可忽视,它能很好提高工作效率。EditPlus的查找,替换,文件中查找…...

Go基础-环境安装

文章目录1 Go?Golang?2 下载Go3 windows安装4 测试是否成功1 Go?Golang? Go也称为Golang,是Google开发的一个开源的编译型的静态语言。 Golang的主要关注点是高可用、高并发和高扩展性,Go语言定位是系统级编程语言,对web程序具有很好的支…...

《NFL橄榄球》:纽约巨人·橄榄1号位

纽约巨人(New York Giants)是美国全国橄榄球联盟在新泽西州东卢瑟福的一支球队。巨人是在1925年作为五个成员之一加入国家美式橄榄球联盟。 在2018年时,球队市值为33亿美元,在世界前50名球队中并列第8名,同时在NFL高居…...

2023/02/18 ES6数组的解读

1 扩展运算符 扩展运算符(spread)是三个点(…). 它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3console.log(1, ...[2, 3, 4], 5) // 1 2 3 4 5该运算符主要用于…...

Ubuntu 20 安装包下载(清华镜像)

Ubuntu 20 安装包下载在国内推荐使用清华大学镜像 清华镜像地址:https://mirrors.tuna.tsinghua.edu.cn/ 在搜索框中输入Ubuntu,然后点击Ubuntu -release,这里面有近几年的Ubuntu镜像 点击你想下载的版本,我选择的是20.0413点击…...

华为OD机试 - 机器人走迷宫(JS)

机器人走迷宫 题目 房间有X*Y的方格组成,例如下图为6*4的大小。每一个放个以坐标(x,y)描述。 机器人固定从方格(0,0)出发,只能向东或者向北前进, 出口固定为房间的最东北角,如下图的方格(5,3)。 用例保证机器人可以从入口走到出…...

字节二面:10Wqps超高流量系统,如何设计?

超高流量系统设计思路 前言 在40岁老架构师 尼恩的**读者交流群(50)**中,大流量、高并发的面试题是一个非常、非常高频的交流话题。最近,有小伙伴面试字节时,遇到一个面试题: 10Wqps超高流量系统,该如何设计&#xf…...

基于springboot+html汽车维修系统汽车维修系统的设计与实现

基于springboothtml汽车维修系统汽车维修系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式&#x1…...

图像质量评估新视角:抛开PSNR和SSIM,聊聊如何用‘变异系数’量化局部细节清晰度

图像质量评估新视角:用变异系数量化局部细节清晰度的实战指南 在数字图像处理领域,评估图像质量一直是核心挑战。传统指标如PSNR(峰值信噪比)和SSIM(结构相似性)虽然广泛应用,但面对复杂场景时往…...

TPS65131模块实战:单电源生成正负双电压的工程指南

1. 项目概述与核心需求解析在模拟电路、音频设备乃至一些复古的数字逻辑电路里,正负双电源轨是一个绕不开的话题。无论是给运算放大器供电,为LCD屏幕提供偏置电压,还是驱动某些老式合成器模块,你常常需要同时拥有一个正电压和一个…...

开发AI助手微服务时利用Taotoken实现模型的热切换与降级

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 开发AI助手微服务时利用Taotoken实现模型的热切换与降级 在构建对外提供AI对话能力的微服务时,服务的稳定性和连续性至…...

高性能系统发育计算库:BEAGLE 库完整安装与优化指南

高性能系统发育计算库:BEAGLE 库完整安装与优化指南 【免费下载链接】beagle-lib general purpose library for evaluating the likelihood of sequence evolution on trees 项目地址: https://gitcode.com/gh_mirrors/be/beagle-lib BEAGLE(Broa…...

GitHub中文界面极速解锁指南:5分钟告别英文困扰的终极方案

GitHub中文界面极速解锁指南:5分钟告别英文困扰的终极方案 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 你是否曾经面对…...

STM32 I2C驱动AT24C02 EEPROM:手把手教你搞定页边界对齐与连续读写(附完整代码)

STM32 I2C驱动AT24C02 EEPROM:页边界对齐与连续读写实战指南 在嵌入式开发中,EEPROM因其非易失性存储特性成为参数保存的首选方案。而AT24C02作为经典的I2C接口EEPROM,其页写入机制却暗藏玄机——许多开发者第一次遭遇"写入数据丢失&quo…...

开源机器人夹爪任务控制台:架构设计与工程实践全解析

1. 项目概述:从“OpenClaw 任务控制”看开源机器人控制台的演进最近在机器人开发社区里,一个名为abhi1693/openclaw-mission-control的项目引起了我的注意。乍一看这个标题,你可能会联想到科幻电影里那些布满屏幕、控制着庞大机械臂的指挥中心…...

STM32CubeMX实战:5分钟搞定MAX31865 PT100测温,从SPI配置到温度读取全流程

STM32CubeMX实战:5分钟搞定MAX31865 PT100测温,从SPI配置到温度读取全流程 在工业测温领域,PT100凭借其优异的线性度和稳定性成为温度测量的黄金标准。而MAX31865作为专为RTD传感器设计的信号调理器,极大简化了前端电路设计。本文…...

深度架构解析:深圳地铁大数据客流分析系统的技术演进与架构哲学

深度架构解析:深圳地铁大数据客流分析系统的技术演进与架构哲学 【免费下载链接】SZT-bigdata 深圳地铁大数据客流分析系统🚇🚄🌟 项目地址: https://gitcode.com/gh_mirrors/sz/SZT-bigdata 在智慧城市建设的浪潮中&#…...

iOS 26.4-26.5终极越狱指南:安全解锁iPhone隐藏功能与高级定制方案

iOS 26.4-26.5终极越狱指南:安全解锁iPhone隐藏功能与高级定制方案 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder 👇…...