Matplotlib第三方扩展包生态

文摘   2024-10-31 14:26   北京  

点击下面卡片,快速关注本公众号

Matplotlib拥有丰富的第三方扩展包生态系统,可以扩展其功能。这种生态系统的多样性和专业性,使得Matplotlib成为科学计算和数据可视化中不可或缺的工具。
本文分别从替代API、颜色映射和样式、地图可视化、动态可视化、交互式可视化、图形界面应用、文档相关以及领域特色库等8个分类类型介绍相关第三方扩展包。

  1. 替代API

  • HoloViews: 这是一个强大的声明式数据可视化库。它允许用户以简洁的方式描述数据和可视化需求,自动选择合适的可视化方式。HoloViews特别擅长处理多维数据,支持交互式探索,并可与Bokeh、Matplotlib等后端集成,适合快速原型设计和复杂数据分析。


  • hvPlot: 基于HoloViews构建,提供了一个更简单的API来创建交互式图表。它与pandas、xarray等数据结构无缝集成,使得从数据到可视化的过程变得非常直观。hvPlot支持多种图表类型,并提供了方便的定制选项。
  • pandas: pandas的绘图API直接集成在DataFrame和Series对象中,使数据分析和可视化过程更加流畅。它提供了多种常用图表类型,如线图、柱状图、散点图等,并且特别擅长处理时间序列数据。pandas的绘图功能基于Matplotlib,但提供了更高级的接口。
  • plotnine: 这是R语言ggplot2的Python实现,引入了"图形语法"的概念。它允许用户以层的方式构建复杂的统计图形,非常适合那些熟悉ggplot2或喜欢声明式绘图风格的用户。plotnine的语法直观且富有表现力,特别适合探索性数据分析。
  • Xarray: 专门用于处理带标签的多维数组数据。它扩展了pandas的功能到更高维度,特别适合处理气象、海洋学、地球科学等领域的大型数据集。Xarray的绘图功能与其数据模型紧密集成,可以轻松创建复杂的多维数据可视化,如热图、等值线图等。


2. 颜色映射和样式
  • Aquarel: 提供了一系列精心设计的调色板,旨在增强数据可视化的美感和可读性。它的调色板考虑了色彩和谐性和对比度,适用于各种类型的图表和infographics。在这篇推文中有相关介绍内容推荐6个美化Matplotlib可视化样式的python库
  • CMasher: 这个库专门为科学可视化设计了一系列感知均匀的颜色映射。它的颜色映射考虑了色盲友好性,并在打印时保持良好效果。CMasher还提供了颜色映射诊断工具,帮助用户选择最适合的颜色方案。
  • cmcrameri: 提供了一套地球科学友好的颜色映射方案,这些方案基于科学研究,确保了在地质、地理等领域数据可视化的准确性和美观性。
  • cmocean: 专为海洋学数据设计的颜色映射库。它提供了一系列反映海洋特性的颜色方案,如深度、温度、盐度等,使海洋数据可视化更加直观和专业。

  • cmweather: 为气象数据设计的颜色映射库。它提供了适合表现温度、降水、风速等气象要素的颜色方案,有助于创建专业的天气图和气候分析图。
  • cmyt: 又一个颜色映射工具,提供多种配色方案。它的特点是颜色选择的多样性,适合各种数据类型和可视化需求。

  • Colorcet: 提供感知均匀的颜色映射。这些颜色映射在亮度和色调上变化平滑,特别适合表现连续数据,如热图或等高线图。
  • distinctipy: 生成互相区分度高的颜色。这对于需要清晰区分多个类别的图表(如多条线图或多类别散点图)特别有用。
  • Farrow&Ball: 基于Farrow&Ball油漆颜色的调色板。这为数据可视化带来了一种独特的美学风格,特别适合需要高质感的展示或出版物。
  • mpl-visual-context: 增强Matplotlib图表的视觉上下文。它提供了额外的视觉元素和布局选项,帮助创建更具表现力和信息量的图表。
  • mplcyberpunk: 提供赛博朋克风格的Matplotlib主题。这个库为数据可视化带来了独特的未来感审美,特别适合科技相关的数据展示。在这篇推文中有相关介绍内容推荐6个美化Matplotlib可视化样式的python库
  • pypalettes: 用于生成和管理调色板的工具。它允许用户创建、保存和共享自定义调色板,增加了颜色选择的灵活性。
  • SciencePlots: 为科学出版物设计的Matplotlib样式。它提供了符合学术期刊要求的图表样式,包括字体、线条样式、颜色等,大大简化了科研论文图表的制作过程。
  • TUEplots: 提供符合特定设计准则的绘图样式。这个库旨在创建清晰、专业的图表,特别适合技术报告和学术论文。
  • vism: 科学可视化的颜色映射和样式工具。它提供了一套全面的工具,用于创建高质量的科学可视化,特别适合复杂数据集的表现。
3. 地图可视化
  • cartopy: 这是一个强大的地理空间数据处理和制图库。它支持多种地图投影,能够处理各种地理数据格式,并可以轻松地在地图上添加各种地理要素。cartopy特别适合气象、海洋学和地球科学数据的可视化。
  • EOmaps: 专门用于地球观测数据的交互式绘图工具。它简化了卫星图像和遥感数据的可视化过程,支持各种地图投影和叠加层。
  • GeoPandas: 扩展了pandas的功能,使其能够处理地理空间数据。它集成了shapely用于几何操作,支持读写多种地理数据格式,并提供了方便的地理数据分析和可视化功能。
  • geoplot: 这是一个高级地理数据可视化库,建立在cartopy之上。它提供了多种专门的地理图表类型,如choropleth(分级统计地图)、cartogram(统计地图)等,简化了复杂地理数据的可视化过程。
  • GeoViews: 基于HoloViews的地理空间数据可视化工具。它结合了HoloViews的声明式API和cartopy的地理空间功能,使得创建交互式地理可视化变得简单。

    https://geoviews.org

  • mplstereonet: 用于绘制地质构造的立体投影图。这个专业工具在地质学和构造地质学研究中非常有用,可以可视化岩石结构的方向数据。
  • prettymaps: 这个工具用于创建美观的地图可视化。它能够生成风格化的地图,适合用于艺术设计、信息图表或者作为背景图像。
  • ridge_map: 创建山脊线风格地图的工具。这种独特的可视化方式可以直观地展示地形高度变化,特别适合展示山地地形或数据分布的密度。

4. 动态可视化:
  • animatplot: 这是一个动画绘图库,简化了Matplotlib动画的创建过程。它提供了一个直观的接口来创建各种类型的动画,特别适合时间序列数据的动态可视化。
  • celluloid: 这是一个简单易用的Matplotlib动画制作工具。它通过简化动画帧的创建过程,使得用户可以用很少的代码就能创建复杂的动画,特别适合那些需要快速创建数据动画的场景。
  • manimplotlib: 这是一个用于创建数学动画的库。它结合了manim(一个数学动画引擎)和Matplotlib的功能,可以创建高质量的数学和科学教育视频。
  • mpl-animators: 这是一套Matplotlib动画工具集。它提供了多种预定义的动画器,可以轻松创建常见类型的数据动画,如线条生长、散点移动等。
  • numpngw: 这个工具用于创建PNG动画。它允许直接从NumPy数组创建动画,特别适合科学计算和图像处理领域的动态可视化。
  • xmovie: 这是一个基于Xarray的动画创建工具。它专门设计用于处理和可视化多维数据集的时间序列,非常适合气象、海洋学等领域的数据动画。

    https://github.com/jbusecke/xmovie

5. 交互式可视化
  • kivy_matplotlib_widget: 这是Kivy框架的Matplotlib部件。它允许在Kivy应用中嵌入Matplotlib图表,为跨平台应用开发提供了强大的数据可视化能力。

    https://github.com/mp-007/kivy_matplotlib_widget
  • mpl-draggable-line: 这个工具允许在Matplotlib图表中拖动线条。它为图表添加了交互性,使用户可以直接在图表上调整线条位置,适合于交互式数据分析和参数调整。
  • mpl-image-labeller: 这是一个图像标注工具。它在Matplotlib的基础上提供了交互式图像标注功能,适用于计算机视觉和图像处理任务中的数据准备工作。
  • mpl-image-segmenter: 这个工具用于图像分割。它提供了交互式界面,允许用户在Matplotlib图表中进行图像分割操作,适用于图像处理和计算机视觉研究。
  • mpl-interactions: 这个库为Matplotlib添加了丰富的交互功能。它支持缩放、平移、选择等操作,使得数据探索和分析过程更加直观和高效。
  • mpl-point-clicker: 这个工具允许在图表上点击和选择点。它为数据点添加了交互性,适用于数据分析中的点选和标记任务。
  • mpl_widget_box: 这个工具用于为Matplotlib图表添加小部件。它可以在图表中嵌入各种控件,如滑块、按钮等,增强图表的交互性。
  • mplcursors: 这个工具为Matplotlib图表添加光标功能。它可以显示数据点的详细信息,提高了图表的可读性和交互性。
  • mpldatacursor: 这是一个数据光标工具,用于显示数据点信息。它提供了更丰富的数据点信息展示功能,适合于详细的数据探索。
  • mplinorm: 这个工具用于创建交互式范数可视化。它在线性代数和数值分析领域特别有用,可以直观地展示不同范数的特性。
  • Panel: 这是一个用于创建交互式应用和仪表板的强大工具。它可以集成多种可视化库,创建复杂的交互式数据应用,适合数据科学和商业智能领域。
  • Quibbler: 这是一个交互式数据分析和可视化工具。它提供了一个灵活的环境,可以实时调整参数和查看结果,特别适合探索性数据分析。

        https://github.com/Technion-Kishony-lab/quibbler


6. 图形界面应用
  • Glue: 这是一个多维数据可视化和探索工具。它允许用户交互式地探索关联数据集,支持多种可视化方式,适合复杂数据集的分析。
  • Lumen: 这个工具用于创建数据可视化仪表板。它提供了一个简单的方式来构建交互式、实时更新的数据仪表板,适合业务分析和数据监控。
  • mpl-multitab: 这个工具用于创建多标签Matplotlib图形。它允许在一个窗口中组织和展示多个图表,提高了复杂数据集的可视化效率。
  • PyLustrator: 这是一个用于创建出版质量图形的工具。它提供了一个图形用户界面来精确调整Matplotlib图表,特别适合准备学术论文或报告的图表。
  • PyNanoGUI: 这是一个轻量级的GUI工具包。它可以快速创建简单的图形用户界面,适合为数据可视化和分析工具添加交互控件。
  • PySimpleGUI: 这个库简化了Python GUI开发。它封装了多个GUI框架,提供了一致的接口,使得创建数据可视化应用变得简单快捷。
  • sview-gui: 这是一个用于查看和分析科学数据的GUI工具。它提供了直观的界面来浏览和可视化各种科学数据格式,适合科研人员日常使用。
7.  文档相关
  • Sphinx-Gallery: 这是一个用于生成图库和示例的强大工具。它可以自动从Python脚本生成文档,包括代码、输出和图表,非常适合创建教程、API文档和代码示例库。
8.  领域特色库
  • AniViz: 这是一个动物行为可视化工具。它专门设计用于分析和可视化动物运动轨迹、行为模式等数据,在生态学和动物行为学研究中非常有用
  • Astropy: 这是一个全面的天文学工具包。它不仅提供了各种天文学计算功能,还包含专门的可视化模块,用于创建天文学常用的图表,如天球图、光谱图、星图等。Astropy的可视化功能与其数据结构紧密集成,使天文数据的分析和展示变得简单高效。
  • BG Heatmaps: 这个工具专门用于创建背景热图。它可以生成复杂的热图,适用于表现地理分布、密度分布等数据。BG Heatmaps特别适合在生物地理学、生态学等领域展示物种分布或环境因子的空间变化。
  • colorio: 这是一个颜色空间可视化和操作工具。它提供了多种颜色空间的转换和可视化功能,对于需要精确控制颜色的设计工作或颜色科学研究非常有用。
  • cplot: 这是一个复数函数可视化工具。它能够创建复变函数的精美图形,在数学教育和复分析研究中有重要应用。cplot可以生成域着色图、相位图等,帮助直观理解复杂的数学概念。

    https://github.com/nschloe/cplot
  • datapane: 这是一个数据报告和仪表板创建工具。它允许用户将Python数据分析的结果轻松转换为交互式报告或web应用,特别适合数据科学家和分析师分享他们的发现。
  • DNA Features Viewer: 这是一个专门的DNA序列可视化工具。它可以生成基因组图谱,展示基因、调控元件等特征,在分子生物学和基因组学研究中非常有用。
  • arplot: 这是用于创建AR(增强现实)可视化的工具。它为数据可视化引入了AR技术,开创了数据展示的新方式,特别适合创新型的数据展示和教育应用。
  • Hockey Rink: 这是一个冰球场地图可视化工具。它提供了创建冰球场地图的功能,可用于分析和展示比赛数据,对冰球运动分析和战术研究非常有帮助。
  • HyperSpy: 这是一个多维数据分析工具,特别适用于电子显微镜数据。它提供了强大的数据处理和可视化功能,能够处理和展示复杂的光谱图像数据,在材料科学和纳米技术研究中广泛应用。

    https://github.com/hyperspy/hyperspy

  • Imposa: 这是一个图像处理和分析工具。它提供了一系列图像处理算法和可视化功能,适用于医学影像、遥感图像等领域的数据分析。
  • marsilea: 这是一个地理空间数据可视化工具。它专注于创建美观的地图和地理数据可视化,特别适合用于地理信息系统(GIS)和地理空间分析。
  • MetPy: 这是一个气象数据分析和可视化工具。它提供了读取、分析和可视化气象数据的功能,包括创建天气图、探空图等专业气象图表,是气象学家和大气科学研究者的重要工具。

  • microfilm: 这是一个科学数据可视化工具。它专门设计用于处理和可视化大规模科学数据,特别是时间序列数据,适用于各种科学领域的数据分析。
  • mlr_eval: 这是一个机器学习结果评估和可视化工具。它提供了各种方法来评估和可视化机器学习模型的性能,包括ROC曲线、混淆矩阵等,对于机器学习项目的开发和调优非常有帮助。
  • mplfinance: 这是一个金融市场数据可视化工具。它专门用于创建金融图表,如K线图、成交量图等,为金融分析和交易决策提供直观的数据支持。
  • mplhep: 这是一个高能物理数据可视化工具。它为高能物理实验数据提供了专门的绘图功能,能够创建符合该领域标准的图表,如直方图、误差条等。
  • mpl-scatter-density: 这是一个大规模散点图可视化工具。它能够高效地绘制包含大量数据点的散点图,通过密度表示来避免过度绘制问题,适合大数据集的可视化。
  • mplsoccer: 这是一个足球数据可视化工具。它提供了创建足球场地图、传球图、热图等功能,对足球比赛分析和战术研究非常有用。
  • MyForestPlot: 这是一个用于创建森林图(用于meta分析)的工具。它在医学研究和系统评价中广泛使用,可以直观地展示多项研究结果的综合分析。
  • NetworkX: 这是一个复杂网络分析和可视化库。它提供了丰富的网络分析算法和可视化方法,可以用于社交网络分析、路径优化、科学合作网络等多个领域。
  • planetMagFields: 这是一个行星磁场可视化工具。它能够模拟和可视化行星磁场,在行星科学和空间物理研究中有重要应用。
  • Py-ART: 这是一个气象雷达数据分析和可视化工具。它提供了处理和可视化气象雷达数据的功能,能够创建各种雷达图像,如反射率图、多普勒速度图等。
  • pyCircos: 这是一个圆形基因组数据可视化工具。它可以创建Circos风格的图表,用于展示基因组数据,在基因组学和比较基因组学研究中广泛应用。
  • pyGenomeViz: 这是另一个基因组可视化工具。它提供了更多的基因组数据可视化选项,可以创建线性或环形的基因组图谱,展示基因结构、比较基因组等信息。
  • pymatvis: 这是一个材料科学数据可视化工具。它专门用于可视化材料结构、性质和模拟结果,在材料科学和工程领域有重要应用。
  • PyPlutchik: 这是一个情感分析可视化工具。它基于Plutchik的情感轮理论,提供了情感数据的可视化方法,在心理学研究和文本情感分析中很有用。
  • pytransform3d: 这是一个3D变换可视化工具。它可以可视化3D空间中的旋转、平移等变换,在机器人学、计算机视觉等领域有重要应用。

        https://github.com/dfki-ric/pytransform3d

  • seaborn: 这是一个统计数据可视化库,基于Matplotlib构建。它提供了一套美观的默认样式和调色板,以及一系列统计图表类型,如小提琴图、热力图等,特别适合统计数据的可视化。
  • seaborn-image: 这是seaborn的图像数据可视化扩展。它为图像数据分析提供了专门的可视化功能,如图像网格、图像聚类可视化等。
  • sunpy: 这是一个太阳物理学数据分析和可视化工具。它提供了处理和可视化太阳观测数据的功能,包括创建太阳图像、光谱分析等,是太阳物理研究的重要工具。
  • TULIPS: 这是一个用于创建郁金香图(基因表达可视化)的工具。它在基因组学和转录组学研究中使用,可以直观地展示基因表达水平的变化。
  • Yellowbrick: 这是一个机器学习可视化工具。它扩展了Scikit-learn的功能,提供了一系列可视化工具来帮助选择模型、调整参数、评估性能等,对机器学习工作流程的各个阶段都有帮助。

    https://www.scikit-yb.org


本公众号相关内容推荐


气python风雨
主要发一些涉及大气科学的Python文章与个人学习备忘录
 最新文章