文章目录
- SciencePlots简介
- 主题列表
SciencePlots简介
各位大佬想必都有被Nature拒稿的经历,考虑到各位大佬的水平,人均爱因斯坦,那么有没有可能是图表排版不合规矩呢?
SciencePlots是Matplotlib的一款主题包,提供了IEEE和Nature风格的绘图模板,其使用方法简单到令人发指。第一步安装没什么好说的
pip install SciencePlots -i https://pypi.tuna.tsinghua.edu.cn/simple接下来画个图试试
一般来说,如果只用Matplotlib,那么上面这个图还是需要一番精修的。但实际上的绘图代码如下,只需使用SciencePlots的主题即可,剩下的就是原生的Matplotlib绘图代码。
# 数据准备importnumpyasnp x=np.linspace(0,10,100)y=np.sin(x)# 核心:调用 nature 样式,可叠加多个importmatplotlib.pyplotaspltimportscienceplots plt.style.use(['science','grid'])fig=plt.figure(figsize=(5,3))ax=fig.add_subplot(111)ax.plot(x,y,label=r'$y = \sin(x)$')ax.set_xlabel(r'Time $t$ (s)')ax.set_ylabel(r'Amplitude $A$')ax.legend()plt.tight_layout()plt.show()当然,按照一般规律,强大和简单如果出现在一块,那肯定是有坑点的。使用SciencePlots需要预先安装Latex。
主题列表
前文用到的【science】风格,是SciencePlots提供的主风格,也是其他风格的基础,其设置的基础参数包括
- 字体及其尺寸
- 线的宽度和风格
- 图像尺度和DPI
- 坐标轴
- LaTeX和文字渲染
SciencePlots为Nature和IEEE期刊提供了专门的模板,分别对应'nature'和'ieee'。
SciencePlots的主题风格可以叠加,比如前面的示例中,除了使用science之外,还用了grid,grid是一种通用风格,与之出于相似地位的风格包括
- no-latex 禁用LaTex渲染
- grid 添加网格线
- notebook 为Jupyter notebooks进行优化显示
- latex-sans 使用基于无衬线字体的LaTex
在颜色主题方面,SciencePlots支持下列风格
| Style | 描述 | 适用场景 |
|---|---|---|
| bright | 色盲安全调色板 | 通用 |
| high-vis | 高可见度颜色 | 用于强调 |
| vibrant | 鲜艳的色彩搭配 | 视觉效果 |
| muted | 沉稳配色 | 专著 |
| high-contrast | 最大对比度 | 黑白打印 |
| light | 浅色调色板 | 浅色背景,投影效果 |
| std-colors | SciencePlots默认 | |
| discrete-rainbow-* | 23色彩虹调色板 | 数据分类 |
此外,SciencePlots还支持多种不同的字体,包括
- 简体中文 “cjk-sc-font”
- 繁体中文 “cjk-tc-font”
- 日文 “cjk-jp-font”
- 韩文 “cjk-kr-font”
- 俄文 “russian-font”
- 土耳其文 “turkish-font”
实测中文乱码,好在Nature不用中文,各位大佬快去发吧!!