python科研绘图|SciencePlots绘图包
专门用于科研论文绘图的第三方拓展工具包。
SciencePlots
SciencePlots的安装可以参考
SciencePlots 工具包和其在科研论文绘图中的应用:
问题背景
-
挑战: 使用 Matplotlib 或 ProPlot 库绘制科研论文插图时,定制化修改字体、刻度轴、轴脊、图例等可能增加绘制时间,并忽略某些图层细节要求。
-
解决方案: SciencePlots 工具包。
SciencePlots 工具包
-
定义: 专门用于科研论文绘图的第三方拓展工具包。
-
功能: 提供主流英文科技期刊(如 Nature、Science 和 IEEE 等)的 Matplotlib 图样式。
-
安装: 通过
pip install SciencePlots安装。
LaTeX 的安装
-
目的: 更好地显示学术论文插图和方便后续印刷,实现 LaTeX 编写样式。
-
步骤:
-
安装 MikTex 和 Ghostscript: 官方建议使用 MikTex 软件安装 LaTeX,同时安装 Ghostscript 软件。(macOS安装macTex)
-
添加到系统环境变量: 将软件的安装路径添加到系统环境变量中。
-
重启机器: 配置生效。
SciencePlots 作为一个专门的科研论文绘图工具,简化了图层属性的定制化修改,提供了与主流科技期刊一致的图样式,并支持 LaTeX 编写样式的实现,大大方便了科研人员的论文插图绘制工作。
SciencePlots 绘图示例
使用 SciencePlots 以不同绘图风格展示同一份数据:
不同绘图风格的比较
-
目的: 展示同一份数据使用不同的绘图风格,以便比较各种风格的特点。
-
LaTeX 符号: 使用了 LaTeX 符号表示,如有特殊字体要求,可以设置不使用 LaTeX 绘图,例如
plt.style.use(['science',' no-latex'])。
绘图风格示例
- Matplotlib 默认风格:

*Matplotlib**的默认颜色主题和绘图风格*
- Science 期刊风格:

Science 系列期刊的绘图风格
-
IEEE 期刊风格: 图 2-4-1©展示了 IEEE 期刊的绘图风格。
IEEE 期刊的绘图风格
-

-
Nature 期刊风格:

Nature 期刊的绘图风格
- vibrant 颜色主题的 Science 风格: 图 2-4-1(e)展示了使用 vibrant 颜色主题的 Science 期刊绘图风格。

使用 vibrant 颜色主题的 Science 期刊绘图风格
- bright 颜色主题的 Science 风格: 图 2-4-1(f)展示了使用 bright 颜色主题的 Science 期刊绘图风格。

使用 bright 颜色主题的 Science 期刊绘图风格
代码:
import pandas as pd import numpy as np import matplotlib.pyplot as plt def plot_errorbar(ax, data, selsect, colors): for index, color in zip(selsect, colors): data_selcet = data.loc[data['type'] == index, :] x_values = data_selcet["time"].to_numpy() y_values = data_selcet["mean"].to_numpy() y_errors = data_selcet["sd"].to_numpy() ax.errorbar(x=x_values, y=y_values, yerr=y_errors, linewidth=1, marker='o', ms=10, mew=1, mec='k', capsize=5, label=index) ax.legend() ax.set(xlabel='Time', ylabel='Values', xlim=(-2,40), ylim=(-8,30)) data = pd.read_excel(r"分组误差线图构建.xlsx") selsect = ["A","B","C","D"] colors = ["#2FBE8F","#459DFF","#FF5B9B","#FFCC37"] # (a) Matplotlib的默认颜色主题和绘图风格 fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show() # (b) Science系列期刊风格绘制结果 plt.style.use('science') fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show() # (c) IEEE期刊风格绘制结果 plt.style.use(['science', 'ieee']) fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show() # (d) Nature期刊风格绘制结果 plt.style.use(['science', 'nature']) fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show() # (e) 使用了vibrant颜色主题的Science期刊绘图风格 plt.style.use(['science', 'vibrant']) fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show() # (f) 使用了bright颜色主题的Science期刊绘图风格 plt.style.use(['science', 'bright']) fig, ax = plt.subplots(figsize=(4,3.5), dpi=100, facecolor="w") plot_errorbar(ax, data, selsect, colors) plt.show()
SciencePlots 库:
-
主流英文科技期刊绘图风格模板: SciencePlots 库提供了主流英文科技期刊(如 Nature、Science 和 IEEE 等)的绘图风格模板,并能实现不同绘图风格的混合使用。
-
全局和临时绘图风格设置:
-
全局设置: 可通过
plt.style.use('science')设置全局绘图风格。 -
临时设置: 可通过以下代码临时使用绘图风格:
pythonCopy code with plt.style.context('science'): plt.figure() plt.plot(x, y) plt.show() -
建议使用全局设置: 在使用临时绘图风格时,特别是使用 LaTeX 字符,可能会导致绘图结果整体不协调问题,如图例、轴标签等无法使用 LaTeX 字符风格。
-
版本更新可能影响引入方式: 引入 SciencePlots 绘图主题样式的方式可能会随着版本的更新有所不同,因此读者应查看 SciencePlots 官网,使用其最新的引入方式。
题外话
当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。


二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试宝典


简历模板
👉 CSDN大礼包:gift::[全网最全《Python学习资料》免费赠送:free:!](https://blog.csdn.net/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502) (安全链接,放心点击)
若有侵权,请联系删除
更多推荐
所有评论(0)