参考: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
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)
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)
|