如何使Matplotlib绘图符合科研绘图规范
如何使Matplotlib绘图符合科研绘图规范
Matplotlib默认的绘图看起来太“轻佻”,这篇文章是关于如何让Matplotlib绘图看起来更加符合文献中图像的样子的。
画图全局参数设置
在科研绘图时,我们需要设置一些全局参数来保证图像的美观性和一致性。比如我们可以设置全局字体、字号、线宽、颜色等参数。全局参数使用plt.rcParams
来设置。plt.rcParams
是一个字典,包含了Matplotlib的所有可配置参数。我们可以通过修改这个字典来改变全局参数。
注意:全局参数必须在plt.plot()
之前设置,否则不会生效。
以下是一些常用的全局参数设置:
1 |
|
设置图片大小及dpi
科研绘图,尤其是要用在论文中的图片,往往都有图片大小及dpi要求。图片大小就是图片的实际尺寸,matplotlib中的图片大小的默认单位是英寸(inch),dpi是每英寸的像素点数。
如何理解图片大小及dpi
- 图片大小:图片的实际尺寸。例如图片大小为7 cm x 5 cm,那么这张图片放进word中时,不进行任何修改,查看到的大小就是7 cm x 5 cm。
- dpi:每英寸的像素点数。
- 图片像素大小:图片大小 * dpi。例如图片大小为7 cm x 5 cm,dpi为300,那么图片的像素大小就是7/2.54 * 300 x 5/2.54 * 300 = 826 x 591。
- 图片大小和dpi的关系:在图片像素大小固定时,图片大小和dpi是成反比的。也就是说,图片大小越大,dpi越小;图片大小越小,dpi越大。我们可以通过设置图片大小和dpi来控制图片的清晰度和文件大小。
如何设置图片大小及dpi
我们可以使用figsize
参数来设置图片大小,使用dpi
参数来设置dpi。在科研绘图时,常用的图片大小单位是cm而非inch,因此可以通过定义转化函数进行转化。
请注意,dpi设置得越大,图片越清晰,但是绘图越慢。因此可以在绘图时设置较低的dpi,保存时设置较高的dpi。
注意:
如果使用
adjust_text
库,可以在绘图时使用较高的dpi,这样可以提高自动调整文本位置的效果。
如果设置了图片渐变背景,请务必保证绘图dpi和保存dpi一致。
1 |
|
设置坐标轴
我们希望在画图时,坐标轴的范围、刻度、标签等都能符合我们的要求。我们可以使用plt.xlim()
、plt.ylim()
、plt.xticks()
、plt.yticks()
等函数来设置坐标轴。此外,在一般的科研绘图中,我们希望坐标轴每两个主刻度之间有一个次刻度。我们可以使用ax.yaxis.set_minor_locator(AutoMinorLocator(2))
来设置次刻度的数量。AutoMinorLocator
是一个自动生成次刻度的类,参数表示每两个主刻度之间有几个次刻度。我们还可以使用ax.xaxis.set_major_locator(MaxNLocator(5))
来设置主刻度的数量。MaxNLocator
是一个自动生成主刻度的类,参数表示最多有几个主刻度。
1 |
|