SciencePlots科研绘图
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 pltdef 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科研绘图相关推荐
- AI科研绘图3:排版
除了使用AI绘制简单的模式图之外,AI还有一个重要的功能就是排版. 在我们通过各种数据处理软件的到可视化的数据图表后,常常需要通过简单地排版,将多个图表排列组合,作为呈现文章结果的Figure之一.这 ...
- AI科研绘图1:零基础入门和基本图形绘制
Adobe illustrator是一种应用于出版.多媒体和在线图像的工业标准矢量插画的软件,是一款非常好的图片处理工具,简称AI. 作为一只实验狗,总要想办法展示自己的数据结果,漂亮的配图则会给你的 ...
- origin使用指导。pdf_LabPlot替代Origin用于科研绘图
Origin软件被许多科研工作者用于数据分析与科研绘图.也许打开10个科研人员的电脑,其中有9台均安装了Origin,至于软件是否是正版,我们就不多说了. 在开源届有一款软件,它同样提供了交互式的科研 ...
- visio wps 流程图_科研必备:几款好用的流程图工具,助力你的论文/科研绘图
写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...
- powerdesigner怎么导出pdf_各种科研绘图软件中的矢量图导出技巧
引言 科技论文常含有插图,借助插图来形象直观.简明扼要地表达所要表述的内容(梁福军. 科技论文规范写作与编辑[M]. 清华大学出版社, 2014.).科研绘图软件有很多种,而软件导出的图片可以分为矢量 ...
- 科研绘图工具软件_如何在Windows 10 Mail中使用绘图工具
科研绘图工具软件 Microsoft recently released a new feature for the Windows 10 Mail app that lets you convey ...
- visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...
写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...
- 3dsmax怎么添加uv坐标_YND科研绘图3Dsmax基础操作
励志这东西,是有时间期限的. 不要期待一个刺激就可以顺利地改变你, 一个人的动力归根结底只能来源于自己. 你只有换着法子地激励自己, 直到它变成你血液的一部分. 你只有不停跌倒, 才能学会怎样用自己的 ...
- 语言 标签倾斜 绘图_一文搞懂ggplot2:老板再也不用担心我的科研绘图
本文主引用:R可视化19|ggplot2绘制常用30+个靓图(附R code) 作者:pythonic生物人 参考文献:R语言 ggplot2 绘图入门,看完你就理解ggplot2的绘图逻辑了 202 ...
最新文章
- Caffe 网络结构可视化
- TP5_接口开发之全局异常控制
- 基础知识(9)- Swing用户界面组件
- 论SqlServer中char、varchar、nvarcahr和MySQL中char、varcahr的区别
- 二级考试java模拟考试_2017年计算机二级考试Java模拟试题及答案
- java 链表实现堆栈_《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈
- linux/npm/git的简单操作
- 计算矩阵边缘元素之和(信息学奥赛一本通-T1121)
- 刘光聪 | TensorFlow:揭示多语言编程的奥秘
- 放弃月薪过万的城市工作,返乡创业做农业,面对未知风险,你敢尝试吗?
- linux (debian) 配置静态ip
- AI周报丨多个国内团队使用人工智能揭示蛋白质相互作用;超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
- 沙场已无李世鹤:论TD-LTE专利
- Bean Validation——自定义注解
- jquery禁止鼠标右键 原生js禁止鼠标右键
- linux下解压war格式的包
- 实现链表的插入——头插/尾插
- 简单易懂的宏任务和微任务执行顺序
- 【2021-07-26】JS逆向之某某西游藏宝阁
- 第四天--外边距塌陷