如何在 seaborn 中创建子图(附示例)


您可以使用以下基本语法在 Python 的Seaborn数据可视化库中创建子图:

 #define dimensions of subplots (rows, columns)
fig, axes = plt. subplots (2, 2)

#create chart in each subplot
sns. boxplot (data=df, x=' team ', y=' points ', ax=axes[0,0])
sns. boxplot (data=df, x=' team ', y=' assists ', ax=axes[0,1])

...

以下示例展示了如何在实践中使用此语法。

示例:在 Seaborn 中创建子图

假设我们有以下 pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [19, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [13, 15, 11, 8, 6, 8, 11, 14],
                   ' rebounds ': [11, 7, 8, 12, 13, 7, 6, 8],
                   ' blocks ': [1, 2, 2, 3, 5, 4, 3, 3]})

#view DataFrame
print (df)

  team points assists rebounds blocks
0 A 19 13 11 1
1 A 12 15 7 2
2 A 15 11 8 2
3 A 14 8 12 3
4 B 19 6 13 5
5 B 23 8 7 4
6 B 25 11 6 3
7 B 29 14 8 3

以下代码演示如何定义具有两行和两列的绘图区域,并在每个子图中为 DataFrame 中的四个数值变量中的每一个创建一个箱线图:

 import matplotlib. pyplot as plt
import seaborn as sns

#set seaborn plotting aesthetics as default
sns. set ()

#define plotting region (2 rows, 2 columns)
fig, axes = plt. subplots (2, 2)

#create boxplot in each subplot
sns. boxplot (data=df, x=' team ', y=' points ', ax=axes[0,0])
sns. boxplot (data=df, x=' team ', y=' assists ', ax=axes[0,1])
sns. boxplot (data=df, x=' team ', y=' rebounds ', ax=axes[1,0])
sns. boxplot (data=df, x=' team ', y=' blocks ', ax=axes[1,1])

Python 中的海洋子图

在此示例中,我们创建了一个包含两行和两列的绘图区域,并用箱线图填充了每个子图。

但是,我们可以使用类似的语法来创建具有不同维度的绘图区域,并使用不同的图形填充子图。

例如,以下代码显示如何创建一行两列的绘图区域,并用小提琴图填充每个图:

 import matplotlib. pyplot as plt
import seaborn as sns

#set seaborn plotting aesthetics as default
sns. set ()

#define plotting region (1 row, 2 columns)
fig, axes = plt. subplots (1, 2)

#create boxplot in each subplot
sns. violinplot (data=df, x=' team ', y=' points ', ax=axes[0])
sns. violinplot (data=df, x=' team ', y=' assists ', ax=axes[1])

其他资源

以下教程解释了如何在seaborn中执行其他常见功能:

如何为 Seaborn 绘图添加标题
如何将 Seaborn 图保存到文件
如何更改 Seaborn 中图例的位置

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注