1.什么是proplot,以及与matplotlib的异同点
利用matlplotlib和seaborn绘制含有多个子图的复杂图形时,容易造成绘制代码冗长。Matplotlib 面向对象绘图方法的高级封装,整合了cartopy/Basemap 地图库、xarray 和 pandas,弥补 Matplotlib 的部分缺陷。
2.多子图绘制处理
-
共享轴标签:matplotlib绘制多子图时,要进行轴刻度标签、轴标签、颜色条和图例的重复绘制操作,使得代码冗长。这是因为Matplotlib 需要通过自定义函数进行绘制,而ProPlot 可以直接通过其内置方法来绘制不同样式的子图标签。
-
跨度轴标签:figure() 函数中的 spanx、spany 和 span 参数用于控制是否对 X 轴、Y 轴或两个轴使用“跨度”轴标签,即当多个子图的 X 轴、Y 轴标签相同时,使用一个轴标签替代即可。
-
多子图序号的绘制:ProPlot 库为绘图对象(figure.Figure 和 axes.Axes)提供了灵活的 format() 方法,该方法可用于绘制不同的子图序号样式和位置。
- ‘center’ 或 ‘c’:子图上轴上方中间
- ‘left’ 或 ‘l’: 子图上轴上方左侧
- ‘right’ 或 ‘r’: 子图上轴上方右侧
- ‘lower center’ 或 ‘lc’:子图下轴上方中间
- ‘upper center’ 或 ‘uc’:子图上轴下方中间
- ‘upper right’ 或 ‘ur’:子图上轴下方右侧
- ‘upper left’ 或 ‘ul’:子图上轴下方左侧
- ‘lower left’ 或 ‘ll’:子图下轴上方左侧
- ‘lower right’ 或 ‘lr’:子图下轴上方右侧
3.更简单的颜色条和图例
为保持所有子图的颜色条和图例一致,proplot中有专门用于绘制单个子图或多个连续子图的颜色条和图例的简单框架,该框架将位置参数传递给 ProPlot 的 axes.Axes.colorbar 或 axes.Axes.legend,完成特定子图不同位置颜色条或图例的绘制。
想要沿图形边缘绘制颜色条或图例,使用proplot.figure.Figure.colorbar和proplot.figure.Figure.legend即可。
4.更加美观的颜色和字体
-
颜色:Matplotlib中可供选择的颜色映射选项较少,无法应对较复杂的数值映射场景。ProPlot 库封装了大量的颜色映射选项,不但提供了来自 Seaborn、cmOcean、SciVisColor 等的拓展包和 Scientific colour maps 等项目中的多个颜色映射选项,而且定义了一些默认颜色选项和一个用于生成新颜色条的 PerceptualColormap类。
-
Matplotlib的默认绘图字体为DejaVu Sans,这种字体是开源的,但是,从美学角度来说,它并不太讨人喜欢。ProPlot 库还附带了其他几种无衬线字体和整个TeX Gyre 字体系列,这些字体更加符合一些科技期刊对科研论文配图的绘制要求。