Matplotlib 中的平行坐标绘图指南

在这篇文章中,我们将学习如何在 Matplotlib 中绘制平行坐标图。首先,让我们讨论一些相关的基本概念:

  • MatplotlibPython 中一个极其强大的可视化库,主要用于数组的二维绘图。Matplotlib 也是一个基于 NumPy 数组构建的多平台数据可视化库,旨在与更广泛的 SciPy 栈协同工作。它由 John Hunter 于 2002 年引入。
  • 可视化最大的好处之一是,它允许我们通过易于理解的视觉图像来直观地访问大量信息。Matplotlib 包含多种图表类型,如折线图、柱状图、散点图、直方图等。
  • 平行坐标(Parallel Coordinates) 是一种探索多维数据在分类响应上分布情况的方法,并以此观察特征中是否存在任何趋势。
  • 使用传统的绘图类型,通常可以相对直观地查看二维和三维数据。即使是四维数据,我们也常常能找到展示信息的办法。

在 Pandas 中实现平行坐标的方法

在 Pandas 中有多种实现平行坐标的方法。在这里,我们讨论一些在 Pandas 中用于绘制平行坐标的常用方法,如下所示:

  • 简单的平行坐标图
  • 包含多条线和多轴的平行坐标图
  • 基于多维数据的平行坐标图
  • 鸢尾花数据集(Iris Dataset)的平行坐标图
  • 使用 plotly.graph_objects 绘制平行坐标

首先,我们需要遵循以下步骤在 Pandas 中绘制平行坐标。

所需步骤

  • 导入库
  • 创建/加载数据
  • 创建子图,并将共享 y 轴设置为 False
  • 绘制所有子图
  • 设置 x 轴限制以显示 x 轴标签
  • 将子图间的宽度间距设置为零
  • 展示图表以查看最终输出

简单的平行坐标图

在这里,我们将通过应用上述步骤来讨论一些示例。在这些示例中,我们将处理线性和多维度的虚拟数据。

在这个示例中,代码使用 Matplotlib 创建了一个包含两个并排子图的图形。它在两个子图中绘制了相同的数据(INLINECODE87137972 和 INLINECODE0e74d807)。子图的 x 轴限制设置不同,第一个子图仅显示数据的前三个点,第二个子图显示后三个点。

Python3


CODEBLOCK_b64948b4

输出:

!Simple Parallel Coordinate Plot

包含多条线和多轴的平行坐标图

在这个示例中,代码使用 Matplotlib 库创建了一行 8 个子图,每个子图显示两条线图(y1 和 y2),对应 x 值使用不同的线样式(‘g-.‘ 和 ‘r–‘)。每个子图的 x 轴限制基于 ‘x‘ 列表中连续的元素对进行设置。子图之间的宽度间距为零,最后显示图形。

Python3


CODEBLOCK_cbb23e15

输出 :

!Parallel Coordinate Plot with Multiple Lines and Multiple Axes

基于多维数据的平行坐标图

在这个示例中,代码创建了四个子图,包含不同的数据系列,并为每个子图设置了单独的 x 轴限制。数据由应用于数组 ‘x‘ 的各种函数组成。子图显示了不同的数据系列,并且 ‘plt.subplots_adjust(wspace=0)‘ 消除了子图之间的水平间距。

Python3


CODEBLOCK_30892543

输出 :

!Parallel Coordinate Plot Over Multi-dimensions Data

针对 Iris 数据集的平行坐标图

在这个示例中,我们将在 Iris 数据集上绘制平行坐标图。Iris 数据集包含三种鸢尾花,每种 50 个样本,以及每个样本的四个属性(萼片长度、萼片宽度、花瓣长度、花瓣长度)。

Python3


CODEBLOCK_b5075018

输出 :

!Parallel Coordinates Plot For Iris Dataset

使用 plotly.graph_objects 绘制平行坐标

Plotly 提供了一个交互式的平行坐标图。在这里,我们将使用 plotly.graph_objects 库来实现它。这允许我们通过鼠标悬停来查看数据,具有更好的交互性。

Python3


CODEBLOCK_9e8c4dd2

输出 :

!Parallel Coordinates Using plotly.graph_objects

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/20594.html
点赞
0.00 平均评分 (0% 分数) - 0