如何在 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])
在此示例中,我们创建了一个包含两行和两列的绘图区域,并用箱线图填充了每个子图。
但是,我们可以使用类似的语法来创建具有不同维度的绘图区域,并使用不同的图形填充子图。
例如,以下代码显示如何创建一行两列的绘图区域,并用小提琴图填充每个图:
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 中图例的位置