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或者考虑到其比较耗时,禁用即可。
上述效果的代码如下。
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超高流量系统,该如何设计…...
基于springboot+html汽车维修系统汽车维修系统的设计与实现
基于springboothtml汽车维修系统汽车维修系统的设计与实现 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式…...
DCT-Net新手入门:从镜像部署到生成第一个卡通头像的全流程
DCT-Net新手入门:从镜像部署到生成第一个卡通头像的全流程 1. 准备工作:认识DCT-Net卡通化工具 你有没有想过把自己的照片变成卡通头像?DCT-Net是一个专门用于人像卡通化的AI模型,它能将普通照片转换成风格独特的卡通图像。这个…...
如何快速实现单图像3D重建:TripoSR完整实战指南
如何快速实现单图像3D重建:TripoSR完整实战指南 【免费下载链接】TripoSR 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR 想要从一张普通图片快速生成逼真的3D模型吗?TripoSR正是你需要的终极解决方案!这个革命性的开源…...
3种方案彻底解决Windows系统APK安装难题:APK Installer技术解析
3种方案彻底解决Windows系统APK安装难题:APK Installer技术解析 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 多场景痛点直击:传统Android应用…...
别再为Allegro导图发愁了!手把手教你用RATA工具搞定BMP单色图转换(附像素调整避坑指南)
Allegro图片导入难题终极指南:从原理到实战的完整解决方案 在PCB设计领域,Allegro作为行业标杆工具,却有一个让无数工程师头疼的"阿喀琉斯之踵"——图片导入功能。无论是公司Logo、结构示意图还是特殊标识,当我们需要将…...
MogFace人脸检测模型-WebUI详细步骤:如何通过service_ctl.sh管理服务生命周期
MogFace人脸检测模型-WebUI详细步骤:如何通过service_ctl.sh管理服务生命周期 1. 服务管理工具介绍 MogFace人脸检测服务提供了一个强大的管理工具service_ctl.sh,这个脚本让你能够轻松控制服务的整个生命周期。无论你是需要启动、停止、重启服务&…...
Unity开发HoloLens应用:从打包到安装的完整避坑指南(2024最新版)
Unity开发HoloLens应用:从打包到安装的完整避坑指南(2024最新版) 如果你正在尝试将Unity项目部署到HoloLens设备上,可能会遇到各种意想不到的问题。作为一位经历过无数次打包、部署、调试循环的开发者,我想分享一些实战…...
cv_unet_image-colorization高保真上色案例:人脸肤色/服饰纹理自然还原实录
cv_unet_image-colorization高保真上色案例:人脸肤色/服饰纹理自然还原实录 你有没有翻看过家里的老相册?那些泛黄的黑白照片,记录着珍贵的瞬间,却总让人觉得少了点什么。色彩,是记忆的温度。过去,为黑白照…...
Llama-3.2V-11B-cot实操手册:构建带反馈机制的迭代式视觉推理Agent
Llama-3.2V-11B-cot实操手册:构建带反馈机制的迭代式视觉推理Agent 你有没有遇到过这种情况?给AI看一张复杂的图表或流程图,它要么答非所问,要么只能给出一个笼统的、没有逻辑链条的答案。你心里想:“它到底是怎么得出…...
Cadence Virtuoso仿真避坑指南:从网表生成到FFT分析的20个常见错误解决方案
Cadence Virtuoso仿真避坑指南:从网表生成到FFT分析的20个常见错误解决方案 在集成电路设计领域,Cadence Virtuoso作为行业标准工具链的核心组件,其仿真功能的正确使用直接关系到设计效率与结果可靠性。本文将系统梳理从网表生成到FFT分析全流…...
Python自动化爬取企查查企业工商信息的实战技巧
1. Python爬取企查查数据的核心思路 企查查作为国内权威的企业信息查询平台,包含了大量有价值的工商注册信息。对于金融、证券行业的从业者来说,经常需要批量获取这些数据进行分析。手动一个个查询不仅效率低下,还容易出错。这时候Python自动…...
