贾浩楠 发自 凹非寺量子位 报道 | 公众号 QbitAI
「一篇论文投多个期刊,每个期刊对图表格式要求不一,同一组数据要用多种工具分别绘图。」
不光是你,哈佛大学天文研究所的博士后,也不堪忍受论文重复绘图之苦。
他的解决办法是:亲自开发一个Matplotlib的补充包,增添scatter、notebook等其他软件常用的绘图工具,还支持一键调用符合ieee等不同期刊要求的图表格式。
现在,这个论文神器已经在Github开源,@爱可可老师 也在微博推荐,收获大量转发好评。
安装工具包
推荐使用Python3环境,并且要预装Matplotlib原始包。
安装这款补充包可以通过pip用一行代码完成:
pip install git https://github.com/garrettj403/SciencePlots.git
你也可以选择手动安装工具包,把Github上的项目克隆到本地以后,直接将*.mplstyle的所有文件放到Matplotlib的风格(style)路径下。如果不清楚具体路径,使用以下代码:
import matplotlibprint(matplotlib.get_configdir())
编译器会返回Matplotlib的路径,你可能还需要手动建立一个stylelib文件夹。
使用教程
调用补充包的各种风格和格式十分简单,都可以通过一行代码直接实现。
「science」是这个补充包最基本的一种风格,基本满足一般科研论文的绘图要求,代码如下:
importmatplotlib.pyplotaspltplt.style.use('science')
也可以在同一张图中使用多个不同的风格:
plt.style.use(['science','ieee'])
对于一些期刊,比如IEEE,图表的格式要求中提出要在基本格式上强调某些特定的参数(字体大小,图片宽度等),单独调用这些特殊格式要求使用如下代码:
with plt.style.context(['science', 'ieee']): plt.figure() plt.plot(x, y) plt.show()
调用指令就这么简单。
使用实例
基本风格「science」:
「science」 「grid」(网格)风格:
「ieee」风格:IEEE期刊对图表的尺寸、文字大小都有要求,同时还要求在黑白印刷时也能清晰呈现,下图是符合要求的「science」 「ieee」风格:
「science」 「scatter」(离散)风格:
Jupyter环境下的「notebook」风格:
补充包中的风格也可以和Matplotlib中的已有风格一起调用,例如「dark_background」 「science」 「 high-vis」:
此外,扩展包还提供多种绘图色彩搭配方案。
high-vis:
bright:
vibrant:
muted:
retro:
补充包默认使用Latex字体渲染,如果电脑中没有Latex,可以改用无Latex渲染模式:
plt.style.use(['science','no-latex'])
这个项目还在持续更新中,作者会不断添加不同的期刊格式,如果需要检查更新最新版本,通过这行代码实现:
pip install SciencePlots
作为科研党的你看到这款论文神器有没有心动呢?
如果它真的对你写论文有帮助,那么赶紧用起来吧。
传送门
Github项目地址:https://github.com/garrettj403/SciencePlots
,