ProPlot 基础与特性

💡 原文英文,约2000词,阅读约需8分钟。
📝

内容提要

ProPlot是基于Matplotlib的高层封装库,集成Cartopy、xarray和pandas,可简化科研论文多子图绘图。它支持共享轴标签、跨子图标签、灵活的子图编号样式,以及更简便的色条和图例绘制,并提供丰富色图和TeX Gyre等字体。示例基于0.9.5版,不支持Matplotlib 3.5系列。

🔎

延伸解读

版本兼容性提醒

文章明确指出,示例基于ProPlot 0.9.5版本,该版本不支持Matplotlib 3.5系列。若需使用ProPlot,建议安装Matplotlib 3.4系列版本。这一限制可能影响依赖新版本Matplotlib的项目,读者在环境配置时需注意版本匹配,避免因不兼容导致绘图错误。

共享轴标签的灵活控制

ProPlot通过figure()函数的sharex、sharey和share参数控制轴标签共享方式。文章示例显示,share='labels'仅共享轴标签,share='limits'强制子图刻度范围一致,可能导致部分子图显示不全,而share=True则同时共享轴标签和刻度标签。读者可根据数据范围差异选择合适模式,避免子图信息丢失。

色条与图例的简化绘制

ProPlot为色条和图例提供了更简便的框架,支持在子图或图形边缘直接绘制。通过axes.Axes.colorbar或legend的loc参数,可灵活放置色条和图例,避免Matplotlib中手动调整间距和对称性的麻烦。例如,fig.colorbar和fig.legend可沿图形边缘添加,适合多子图布局。

色图与字体的学术优化

ProPlot集成了Seaborn、cmOcean、SciVisColor等扩展色图,以及Scientific colour maps项目的色图,并定义了PerceptualColormap类,有助于避免使用jet等误导性色图。同时,它自带TeX Gyre等字体,比Matplotlib默认的DejaVu Sans更符合学术期刊要求。这些特性可提升论文图表的专业性和可读性。

❓

Q&A

ProPlot 是什么?它和 Matplotlib 有什么关系?

ProPlot 是一个基于 Matplotlib 的高层封装库,它封装了 Matplotlib 的面向对象绘图接口,并集成了 Cartopy、xarray 和 pandas,可以弥补 Matplotlib 的一些不足,让绘图体验更流畅。

ProPlot 在绘制多子图时有哪些共享轴标签的功能?

ProPlot 的 figure() 函数提供 sharex、sharey 和 share 参数来控制轴标签共享样式。例如,sharey='labels' 只共享轴标签,sharey='limits' 会强制各子图刻度范围一致,sharey=True 则同时共享轴标签和刻度标签。

ProPlot 如何实现跨子图的轴标签(spanning labels)?

通过 figure() 函数的 spanx、spany 和 span 参数控制。当多个子图的 X 轴或 Y 轴标签相同时,可以设置 span=True 来使用一个统一的轴标签,而不是每个子图重复绘制。

ProPlot 绘制子图标签(如 a、b、c)有哪些样式和位置选项?

ProPlot 通过 format() 方法的 abcloc 参数控制子图标签位置,可选值包括 'c'、'l'、'r'、'lc'、'uc'、'ur'、'ul'、'll'、'lr' 等。标签样式可通过 abc 参数自定义,如 'a'、'a.'、'(a)'、'[a]'、'A' 等,还可用 abcbbox=True 添加背景边框。

ProPlot 在绘制色条(colorbar)和图例(legend)方面比 Matplotlib 简单在哪里?

ProPlot 提供了简单的框架,通过位置参数即可在特定子图或整个图形边缘绘制色条和图例。例如,使用 axes.Axes.colorbar 或 axes.Axes.legend 并指定 loc 参数,可以轻松将色条或图例放置在子图内部或外部,避免了 Matplotlib 中手动调整位置和间距的麻烦。

ProPlot 提供了哪些色图和字体来改善科学绘图?

ProPlot 提供了大量色图选项,包括来自 Seaborn、cmOcean、SciVisColor 和 Scientific colour maps 的色图,以及自定义的 PerceptualColormap 类。字体方面,除了默认的 DejaVu Sans,还自带多种无衬线字体和完整的 TeX Gyre 字体家族,如 TeX Gyre Schola、TeX Gyre Heros 等,更适合科学论文绘图。

ProPlot 0.9.5 版本对 Matplotlib 版本有什么要求?

ProPlot 0.9.5 版本不支持 Matplotlib 3.5 系列,建议使用 Matplotlib 3.4 系列版本。

🏷️

标签

➡️

继续阅读