📜  如何在 Seaborn 中创建子图?

📅  最后修改于: 2022-05-13 01:54:54.673000             🧑  作者: Mango

如何在 Seaborn 中创建子图?

先决条件: Matplotlib Seaborn

在本文中,我们将探讨如何在 seaborn 中创建子图或多维图,这是在数据集的不同子集上绘制同一图的子图实例的有用方法。它允许查看者快速提取有关复杂信息的大量数据。

在 Seaborn 中创建子图

示例 1:在这里,我们正在初始化不带参数的网格,返回一个图形和一个轴。

Python3
import seaborn as sns
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
  
figure, axes = plt.subplots()
figure.suptitle('Geeksforgeeks - one axes with no data')


Python3
figure, axes = plt.subplots(1, 2, sharex=True,
                            figsize=(10, 5))
figure.suptitle('Geeksforgeeks')
axes[0].set_title('first chart with no data')
axes[1].set_title('second chart with no data')


Python3
figure, axes = plt.subplots(3, 4, sharex=True,
                            figsize=(16, 8))
figure.suptitle('Geeksforgeeks - 3 x 4 axes with no data')


Python3
import matplotlib.pyplot as plt
  
Grid_plot = plt.GridSpec(2, 3, wspace = 0.8,
                        hspace = 0.6)
  
plt.subplot(Grid_plot[0, 0])
plt.subplot(Grid_plot[0, 1:])
plt.subplot(Grid_plot[1, :2])
plt.subplot(Grid_plot[1, 2])


Python3
import matplotlib.pyplot as plt
  
figure, axes = plt.subplots(3, 4,
                            figsize=(15, 10))
  
figure.suptitle('Geeksforgeeks - 2 x 3 axes\
grid plot using subplots')


输出:

示例 2:在此示例中,我们创建了一个具有 1 行和 2 列的图,仍然没有传递数据,即 nrows 和 ncols。如果按此顺序给出,我们不需要键入 arg 名称,只需键入它的值。

  • figsize 设置我们图形的总尺寸。
  • sharex 和 sharey 用于在图表之间共享一个或两个轴。

Python3

figure, axes = plt.subplots(1, 2, sharex=True,
                            figsize=(10, 5))
figure.suptitle('Geeksforgeeks')
axes[0].set_title('first chart with no data')
axes[1].set_title('second chart with no data')

输出:

示例 3:创建具有多个级别的子图

Python3

figure, axes = plt.subplots(3, 4, sharex=True,
                            figsize=(16, 8))
figure.suptitle('Geeksforgeeks - 3 x 4 axes with no data')

输出:

示例 4: gridspec() 用于具有某些指定宽度和高度空间的行和列网格。 plt.GridSpec 对象本身不会创建绘图,但它只是一个方便的接口,可被 subplot() 命令识别。

Python3

import matplotlib.pyplot as plt
  
Grid_plot = plt.GridSpec(2, 3, wspace = 0.8,
                        hspace = 0.6)
  
plt.subplot(Grid_plot[0, 0])
plt.subplot(Grid_plot[0, 1:])
plt.subplot(Grid_plot[1, :2])
plt.subplot(Grid_plot[1, 2])

输出:

示例 4:这里我们将使用 subplots() 创建一个 3×4 的子图网格,其中同一行中的所有轴共享它们的 y 轴刻度,并且同一列中的所有轴共享它们的 x 轴刻度

Python3

import matplotlib.pyplot as plt
  
figure, axes = plt.subplots(3, 4,
                            figsize=(15, 10))
  
figure.suptitle('Geeksforgeeks - 2 x 3 axes\
grid plot using subplots')

输出: