Matplotlib subplot 中如何去除多余的图形

Matplotlib subplot 中如何去除多余的图形

Matplotlib 在数据可视化方面拥有广泛的应用。其中最为基础的就是 subplot 功能,可以在一张图中绘制多组数据,方便比较不同数据之间的关系。但是在实际操作中,可能会出现多余的图形,影响图像的美观度和可读性。本次将介绍如何在 Matplotlib subplot 中去除多余的图形,并给出实例说明。

阅读更多:Matplotlib 教程

什么是多余的图形

在 matplotlib subplot 中,作图时会创建多个 Axes 实例,其中有些是空白的。

空白部分就是多余的图形,它们在图像上占据了不必要的空间,容易引起混淆,影响数据的呈现效果。去除多余的图形,可以使图像更加美观,减少视觉干扰,提高图像的可读性。

如何去除多余的图形

  1. 调整 subplot 布局

调整 subplot 布局是去除多余图形最为简单的方法。在 Matplotlib 中,可以使用 subplots_adjust() 函数来调整 subplot 的布局。具体操作代码如下:

import matplotlib.pyplot as plt

# 创建包含 4 个 subplot 的 figure 对象
fig, axs = plt.subplots(2, 2)

# 调整subplot之间的横向距离和纵向距离
fig.subplots_adjust(wspace=0.3, hspace=0.5)

# 显示图形
plt.show()

在上面的代码中,我们使用 plt.subplots(2,2) 创建了一个包含 4 个 subplot 的 figure 对象,然后使用 fig.subplots_adjust() 调整轴之间的横向和纵向间距,从而使得空白部分的大小尽量小。

运行以上代码,我们可以看到下面的图像,空白部分被大大缩小。

虽然这种方法可以减少多余图形的占位,但是对于极端情况下依然无能为力,无法彻底去除多余图形。因此,还需结合其他方法进行解决。

  1. 使用 plt.delaxes() 删除不需要的 subplot

除了调整 subplot 布局,还可以使用 plt.delaxes() 函数,直接删除特定位置上的 subplot。该函数需要传入需要删除 Subplot 对象的实例,来实现删除机制。下面是一个示例代码:

import matplotlib.pyplot as plt

# 创建包含 4 个 subplot 的 figure 对象
fig, axs = plt.subplots(2, 2)

# 删除指定的 subplot
plt.delaxes(axs[1,1])

#显示图形
plt.show()

在上述代码中,我们仍然使用 plt.subplots(2,2) 创建 figure 对象,然后使用 plt.delaxes() 函数删除第二行第二列的 subplot。

我们可以看到,第二行第二列的 subplot 已经被成功删除,并且调整了 subplot 的位置和大小,使得空白部分减少到最小化。

  1. 使用 plt.tight_layout() 函数

plt.tight_layout() 函数会自动调整 subplot 之间的间距和位置,从而尽量去除多余的图形。函数使用非常简单,只需要在绘图完成后使用即可。下面是一个示例代码:

import matplotlib.pyplot as plt

# 创建包含 4 个 subplot 的 figure 对象
fig, axs = plt.subplots(2, 2)

#绘制指定的subplot
axs[0, 0].plot([1, 2, 3],[4, 5, 6])
axs[0, 1].plot([1, 2, 3],[4, 5, 6])
axs[1, 0].plot([1, 2, 3],[4, 5, 6])
axs[1, 1].plot([1, 2, 3],[4, 5, 6])

# 自动调整 subplot 之间的间距和位置
plt.tight_layout()

# 显示图形
plt.show()

在上面的代码中,我们首先使用 plt.subplots(2,2) 创建了一个包含 4 个 subplot 的 figure 对象,然后使用 axs[][] 来绘制特定位置上的 subplot。最后使用 plt.tight_layout() 函数来自动调整 subplot 之间的位置和间距,从而去除多余图形。

可以看到,多余图形已经被自动消除,整张图像也变得更加紧凑。

总结

在 Matplotlib subplot 中去除多余图形可以有效提高图像的美观度和可读性。本文介绍了三种常用方法:调整 subplot 布局、使用 plt.delaxes 函数来删除特定位置上的 subplot 和使用 plt.tight_layout 函数。

在实际应用中,可以选用不同的方法或者组合使用,使得图像更加美观、清晰,同时具有一定的实用性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程