Python Matplotlib中的线型

2025年1月4日 | 阅读 9 分钟

Matplotlib 是一个用于绘制图形和可视化数据的 Python 库。它也用于创建静态、动画和交互式可视化以及数据可视化。Matplotlib 库最初由 John D. Hunter 于 2003 年开发,现在拥有庞大的开发者社区。

Matplotlib 的一些关键特性

  1. Matplotlib 可用于绘制图表、图形、线图、散点图、条形图、直方图以及饼图等多种图表。
  2. Matplotlib 提供了广泛的自定义选项,可以控制图表的每个方面,包括线型、颜色、标记、标签和注释。
  3. Matplotlib 可以轻松与 NumPy 集成,从而方便地直接绘制数据。
  4. Matplotlib 绘制的高质量图表和视觉效果适合发表,对图表的美学有细粒度的控制。
  5. 它是一个高度可扩展的库,提供了附加的工具包和扩展,例如 Seaborn、pandas 的绘图函数以及用于地理绘图的基础地图。
  6. Matplotlib 是平台无关的,可以在各种操作系统上运行,包括 Windows、macOS 和 Linux。
  7. Matplotlib 支持交互式绘图,包含小部件和事件处理,使用户能够动态地探索数据。

Matplotlib 的基本组成部分

  1. Matplotlib 中的 Figure(图形): 这是图表中所有元素的顶级容器。它是绘制图表的画布。可以将其视为一张白纸,用于创建视觉效果和图形。
  2. Axes(坐标轴区域): 这是图表中绘制数据的矩形区域。在 Matplotlib 中,每个 Figure 包含一个或多个 Axes,它们可以根据需要排列成行和列。Axes 提供坐标系,并且是大部分绘图发生的地方。
  3. Matplotlib 中的 Axis(轴): 它显示图表的 x 轴和 y 轴。可以定义各种属性,例如数据限制、刻度线位置、刻度标签和轴标签。Matplotlib 中的每个 Axis 都有一个比例和定位器,用于确定标记的间距。
  4. Matplotlib 中的 Marker(标记): 这些符号用于表示图表中的单个数据点。它可以是圆形、方形、三角形或自定义符号等形状。标记主要用于散点图,并与连接的点和其他类型的图表一起使用。它们表示数据点之间的关系或趋势,并且可以通过不同的颜色、宽度和样式进行样式设置以显示额外的信息。
  5. 向 Figure 添加线: 图表中的数据点由线连接,主要用于线图、带有点连接的散点图和其他类型的图表。
  6. Matplotlib 中的 Title(标题): Matplotlib 中的标题用于设置文本元素,为图表提供描述性标题。它出现在图表的顶部,并提供上下文或信息。
  7. Matplotlib 中的 Axis labels(轴标签): 标签用于为 Matplotlib 轴提供标题,它们是用于标识正在绘制的数据并提供单位或其他相关信息的文本元素。
  8. Ticks(刻度线): 刻度线是绘制在轴上的小标记,用于指示特定的数据点或间隔。刻度线用于解释图表的比例并定位特定于数据点的数据值。
  9. Matplotlib 中的 Tick Labels(刻度标签): 这些是为刻度线提供标签的文本元素。这些刻度线显示与每个刻度标记相对应的数据值,并且可以自定义以显示特定单位。
  10. Matplotlib 中的 Legend(图例): 这些是 Matplotlib 属性,用于显示图表中的颜色或符号,以表示不同的数据点、系列或类别,从而帮助用户理解图表并解释每个元素的含义。
  11. Matplotlib 中的 Grid Lines(网格线): 这些是水平线和垂直线,用于扩展图表,以特定于数据间隔或划分。这些网格线用作数据的视觉指南,有助于识别模式或趋势。
  12. Matplotlib Figure 的 Spines(边框线): 这些线用于形成图表区域的边框。图表与周围的空白区域分开,并且可以自定义以更改图表边框的表示。

Matplotlib 中的不同类型图表

Matplotlib 提供了多种图表来可视化不同类型的数据。以下是一些常用的 Matplotlib 图表。

  • 线图
  • 茎状图
  • 柱状图
  • 直方图
  • 散点图
  • 箱线图
  • 饼图
  • 误差图
  • 小提琴图
  • 3D 图

Matplotlib 提供了经典的样式和内置样式,让人联想到传统的科学图表;以及具有鲜艳色彩和时尚线条的现代样式,用于演示或灰度打印;还有用于特定目的的专业样式。Matplotlib 允许自定义图表样式以匹配偏好或企业品牌,确保可视化既具有信息量又具有视觉吸引力。还有许多其他属性。

  • Python Pyplot
  • Figure 类
  • Axes 类
  • 设置颜色
  • 在图表中添加文本、字体和网格线
  • 自定义 Matplotlib 中的图例
  • 刻度线和刻度标签
  • 样式化图表
  • 在 Matplotlib 中创建多个子图
  • 将图像添加到 Matplotlib 图表中。

Matplotlib 之所以受欢迎,是因为它易于使用、文档齐全,并且提供了许多可用的图表。Matplotlib 提供了灵活的自定义选项,支持多种图表类型,并可以与其他 Python 库(如 NumPy 和 Pandas)集成。它适用于各种数据可视化工作,包括探索性数据分析、绘制科学图表以及创建出版级图表。在需要对图表进行细粒度控制以及需要创建复杂或专业可视化的情况下,它得到了增强。

Matplotlib 的优点

Matplotlib 在数据可视化方面得到了广泛应用,它是一个由 Python 提供的绘图库,具有多种绘图工具和功能,可用于绘制不同类型的图表、图形和绘图。下面将讨论 Matplotlib 的一些优点。

  1. Matplotlib 非常灵活,可用于绘制各种图表和图形,例如线图、散点图、条形图、直方图、饼图等等。
  2. Matplotlib 提供了自定义选项,可以控制或自定义图表的每一个方面,包括线型、颜色、标记、标签和注释。
  3. Matplotlib 还可以与不同的 Python 库集成以可视化数据,例如 NumPy,这使得直接高效地绘制数据变得容易。
  4. Matplotlib 还可以用于绘制高质量的图表,这些图表适合出版,并具有细粒度的控制。
  5. 由于其灵活性,Matplotlib 被广泛用于科学和工程任务。
  6. Matplotlib 提供了可扩展性,带有附加工具包和扩展,例如 Seaborn、Pandas 绘图函数以及用于绘制地理数据的基础地图。
  7. Matplotlib 是平台无关的,可以在不同的操作系统上运行,包括 Windows、macOS 和 Linux。
  8. Matplotlib 可以绘制交互式图表,可以使用小部件来处理事件,从而使用户能够动态地探索数据。
  9. Matplotlib 可以轻松地与 Jupyter Notebook 集成,用于交互式绘图和显示内联图表。
  10. Matplotlib 的文档丰富,拥有用户和开发者的支持社区,因此很容易获得帮助、教程和示例。

Matplotlib 的缺点

尽管 Matplotlib 有许多优点,但它也存在一些缺点,下面将进行讨论。

  1. 陡峭的学习曲线: 由于 Matplotlib 的广泛自定义和复杂语法,初学者在其初始阶段可能会遇到陡峭的学习曲线。
  2. 与 Seaborn 或 plotly 等其他绘图库相比,Matplotlib 的语法可能冗长且不太直观,这使得创建和自定义图表更加耗时。
  3. 与许多其他库相比,Matplotlib 的默认图形美学通常被认为视觉吸引力较低。
  4. Matplotlib 并不提供许多交互式功能。另一方面,Matplotlib 不支持交互式绘图。
  5. 对于 3D 可视化,Matplotlib 的功能和用户友好性不如一些其他专门的 3D 绘图库。
  6. 虽然 Matplotlib 的文档丰富,但对某些用户来说,导航很困难,错误消息有时可能晦涩难懂且难以调试。
  7. 在可视化大型数据集时,Matplotlib 的性能可能较慢且效率较低,尤其与更优化的绘图库相比。
  8. Matplotlib 可能导致兼容性问题,因为它依赖于 NumPy 和 SciPy 等其他外部库来实现许多功能,并且还存在依赖关系管理问题。
  9. Matplotlib 可以绘制基本的统计图表,但缺乏高级统计绘图功能,例如 Seaborn 所提供的。

Matplotlib 中的线型

Matplotlib 提供了许多线型方法来改善图表的美观性。在图表中使用线型可以使图表更具交互性。Matplotlib 中的线型定义了可以在线上绘制的线模式。Matplotlib 中有各种线型方法,例如实线、虚线、点划线和点划线,它们是 Matplotlib 提供最流行的线类型。下面来看一个简单的代码示例

代码

输出

Linestyles in Matplotlib Python

说明

在上面的代码中,导入了 numpy 模块和 matplotlib 模块。NumPy 模块用于生成数据,并创建了几个线图。首先,创建了一个 1 行 1 列的子图,并定义了子图的图形大小为 10, 6。然后,使用实线、虚线、点划线和点划线作为线型绘制了各种线图,并添加了标签。

线型缩写

代码

输出

Linestyles in Matplotlib Python

说明

在上面的代码中,线型被替换为 dashed、dashdot 和 datted 值,代码保持不变。

自定义间距的线型

代码

输出

Linestyles in Matplotlib Python

说明

在上面的代码中,为线型定义了一个元组,元组的第一个值是偏移量。元组的第二个值指定了虚线的长度以及虚线之间的间距。

将线型与颜色结合使用

代码

输出

Linestyles in Matplotlib Python

说明

在上面的代码中,绘制了各种三角函数,并为图表设置了线型。

线型和标记组合

代码

输出

Linestyles in Matplotlib Python

说明: 在上面的代码中,还使用了标记与线型结合。标记显示数据点。

结论

Matplotlib 的线型功能对于绘图功能至关重要,它们可以区分数据集并提高图表的清晰度。