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 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科研绘图相关推荐

  1. AI科研绘图3:排版

    除了使用AI绘制简单的模式图之外,AI还有一个重要的功能就是排版. 在我们通过各种数据处理软件的到可视化的数据图表后,常常需要通过简单地排版,将多个图表排列组合,作为呈现文章结果的Figure之一.这 ...

  2. AI科研绘图1:零基础入门和基本图形绘制

    Adobe illustrator是一种应用于出版.多媒体和在线图像的工业标准矢量插画的软件,是一款非常好的图片处理工具,简称AI. 作为一只实验狗,总要想办法展示自己的数据结果,漂亮的配图则会给你的 ...

  3. origin使用指导。pdf_LabPlot替代Origin用于科研绘图

    Origin软件被许多科研工作者用于数据分析与科研绘图.也许打开10个科研人员的电脑,其中有9台均安装了Origin,至于软件是否是正版,我们就不多说了. 在开源届有一款软件,它同样提供了交互式的科研 ...

  4. visio wps 流程图_科研必备:几款好用的流程图工具,助力你的论文/科研绘图

    写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...

  5. powerdesigner怎么导出pdf_各种科研绘图软件中的矢量图导出技巧

    引言 科技论文常含有插图,借助插图来形象直观.简明扼要地表达所要表述的内容(梁福军. 科技论文规范写作与编辑[M]. 清华大学出版社, 2014.).科研绘图软件有很多种,而软件导出的图片可以分为矢量 ...

  6. 科研绘图工具软件_如何在Windows 10 Mail中使用绘图工具

    科研绘图工具软件 Microsoft recently released a new feature for the Windows 10 Mail app that lets you convey ...

  7. visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...

    写SCI论文常常会遇到一个问题--如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理.如何应用存在疑问:尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了 ...

  8. 3dsmax怎么添加uv坐标_YND科研绘图3Dsmax基础操作

    励志这东西,是有时间期限的. 不要期待一个刺激就可以顺利地改变你, 一个人的动力归根结底只能来源于自己. 你只有换着法子地激励自己, 直到它变成你血液的一部分. 你只有不停跌倒, 才能学会怎样用自己的 ...

  9. 语言 标签倾斜 绘图_一文搞懂ggplot2:老板再也不用担心我的科研绘图

    本文主引用:R可视化19|ggplot2绘制常用30+个靓图(附R code) 作者:pythonic生物人 参考文献:R语言 ggplot2 绘图入门,看完你就理解ggplot2的绘图逻辑了 202 ...

最新文章

  1. Caffe 网络结构可视化
  2. TP5_接口开发之全局异常控制
  3. 基础知识(9)- Swing用户界面组件
  4. 论SqlServer中char、varchar、nvarcahr和MySQL中char、varcahr的区别
  5. 二级考试java模拟考试_2017年计算机二级考试Java模拟试题及答案
  6. java 链表实现堆栈_《Java数据结构与算法》笔记-CH5-链表-4用链表实现堆栈
  7. linux/npm/git的简单操作
  8. 计算矩阵边缘元素之和(信息学奥赛一本通-T1121)
  9. 刘光聪 | TensorFlow:揭示多语言编程的奥秘
  10. 放弃月薪过万的城市工作,返乡创业做农业,面对未知风险,你敢尝试吗?
  11. linux (debian) 配置静态ip
  12. AI周报丨多个国内团队使用人工智能揭示蛋白质相互作用;超参数调优河伯、组合优化器CompBO,华为诺亚开源贝叶斯优化库
  13. 沙场已无李世鹤:论TD-LTE专利
  14. Bean Validation——自定义注解
  15. jquery禁止鼠标右键 原生js禁止鼠标右键
  16. linux下解压war格式的包
  17. 实现链表的插入——头插/尾插
  18. 简单易懂的宏任务和微任务执行顺序
  19. 【2021-07-26】JS逆向之某某西游藏宝阁
  20. 第四天--外边距塌陷

热门文章

  1. 概述类的加载器及类加载过程
  2. WebLogic下WAR方式部署获取文件路径问题
  3. 上传问题分析1--文件保存位置
  4. 消息队列入门案例-编码
  5. Eureka的高可用
  6. Hystrix Dashboard的使用与常见问题总结
  7. 操作系统对性能的影响-MySQL适合的操作系统
  8. spring整合junit测试
  9. mac 由于网络问题,您已断开与 windows 计算机的联接.,苹果电脑启用windows系统时连接不上无线网怎么处理?...
  10. mysql 查询设置调优_MySQl 查询性能优化相关