​ 参考:https://github.com/garrettj403/SciencePlots

​ 不得不说随着顶会投稿数量的爆炸性增长,审稿人力不从心,使得一部分审稿人的水平确实较之前有所降低,但是好的论文配图会增加论文脱颖而出的可能。之前的配图一般使用的是matplotlib,ggplot2,MATLAB等这样的绘图包,然而matplotlib默认设置绘制出来的图总让人感觉没有那么专业,ggplot2的图确实优美但是R语言又比较小众。在这种情况下,SciencePlots就是非常好的一个选择。

​ SciencePlots是一个专门为科研论文打造的轻量化的绘图工具包,安装SciencePlots最简单的方式是使用pip,使用的指令为:

# 安装最新版
pip install git+https://github.com/garrettj403/SciencePlots.git

# 安装稳定版
pip install SciencePlots

​ 安装完成后,使用SciencePlots也非常简单,只需要导入matplotlib工具包,选择相应的style即可。例如,如果想要给Science投稿,那么只需要引入下列的主题:

import matplotlib.pyplot as plt
import scienceplots
plt.style.use('science')

​ 需要使用IEEE的格式,则是

import matplotlib.pyplot as plt
import scienceplots
plt.style.use(['science','ieee'])

​ 但是需要注意的是,IEEE的格式会覆盖一些Science的风格,例如列宽,行距等。

​ 接下来,用一些例子来展示一下SciencePlots的用法和具体的效果,首先,引入一些初始的数据并进行绘制。

import numpy as np
import matplotlib.pyplot as plt
def model(x, p):
return x ** (2 * p + 1) / (1 + x ** (2 * p))
x = np.linspace(0.75, 1.25, 201)

​ 我们只需要使用with语句就可以临时使用SciencePlots

# science风格
with plt.style.context(['science']):
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 ($\mu$A)')
ax.autoscale(tight=True)
fig.savefig('figures/fig1.pdf')
fig.savefig('figures/fig1.jpg', dpi=300)
# ieee风格
with plt.style.context(['science', 'ieee']):
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 ($\mu$A)')
ax.autoscale(tight=True)
fig.savefig('figures/fig2.pdf')
fig.savefig('figures/fig2.jpg', dpi=300)