最近在知乎上看到一个老生常谈的问题:“Origin、MATLAB、Python 用于科研作图,到底哪个最好?”
说实话,如果倒退十年,我会犹豫一下。但在数据科学爆炸的今天,我的答案只有一个:无脑选 Python。
为什么?
因为科研绘图从来不是一个孤立的动作。它是一条漫长的链条:数据采集 ➔ 数据清洗 ➔ 建模分析 ➔ 可视化展示
如果你用 Origin,你可能需要用 Excel 存数据,SPSS 做分析,最后复制粘贴到 Origin 里画图。一旦数据源变了,整个流程得从头再来一遍,简直是噩梦。
而 Python,是从头吃到尾的“全栈工具”。但很多人拒绝 Python 的理由只有一个:“Matplotlib 原生画出来的图,太丑了。”
别急,今天给你推荐一个神器,只要加一行代码,丑小鸭瞬间变天鹅。
Matplotlib是 Python 绘图的基石,强大到几乎没有它画不出的图。CNS(Cell, Nature, Science)上很多神图都是用它画的。
但它的“默认皮肤”确实也是上个世纪的审美:
默认线条粗细不讲究
缺乏学术规范的刻度
字体不是 Times New Roman
以前,想把这张图改成 IEEE 或 Nature 的标准,你需要写几十行代码去设置 `font.family`、`tick_params`、`grid`...
现在,你只需要一个库:SciencePlots。
GitHub 上这个名为SciencePlots的开源库,专门为科研论文设计。它实际上是一套配置好的 Matplotlib 样式表(Style Sheets)。
它有多强?看看对比就知道了:
还能一键切换 IEEE 风格
或者是 Nature 风格的配色
它自动帮你搞定了以下烦人的细节:
字体:自动适配 Times New Roman 或 LaTeX 字体
布局:符合期刊的单栏/双栏尺寸
刻度:刻度线朝内(Inward ticks),符合多数物理化学期刊要求
配色:高对比度,色盲友好,黑白打印也清晰
想在自己的论文里用上这套神装?非常简单。
第一步:安装
打开你的终端或 Anaconda Prompt,输入:pip install SciencePlots
注意:如果你需要完美的 LaTeX 字体渲染,电脑里最好安装过 TeX Live 或 MiKTeX,嫌麻烦也可以只用它的非 LaTeX 模式
第二步:调用
在你的绘图代码中,加入核心的一句 plt.style.use():
import matplotlib.pyplot as plt
import scienceplot
splt.style.use(['science', 'ieee'])
接下来正常画图即可
搞定!不需要你去查文档设置线宽、不需要去百度怎么改刻度方向,一步到位。
推荐 SciencePlots,不仅仅是为了让你少调几个参数。我想传达的核心观点是:将重复的体力劳动代码化。
当你把绘图代码保存下来后,下一次实验数据出来,你只需要替换数据文件,运行脚本,一张完美的、格式统一的图表就自动生成了。这才是 Python 对比图形界面软件(GUI)的降维打击。
当然,画图只是最后一步。在画出神图之前,你面临的更大挑战通常是:
1. 数据在哪?(需要爬虫)
2. 数据太乱?(需要清洗)
3. 数据太多?(需要自动化)
如果你已经搞定了绘图,不妨往回看一步。掌握高效的数据获取能力(爬虫),配合 Python 强大的处理流,才是科研效率翻倍的终极秘籍。