本文分享Python seaborn实现散点图矩阵代码模版,节选自👉嫌Matplotlib繁琐?试试Seaborn!
散点图矩阵(scatterplot matrix)展示原始数据中所有变量两两之间关系,可以规避单一统计指标的偏差,可以在平面上快速优雅的探索高维数据。注意区别于前文“分面多子图”,散点图矩阵可在每个子图中显示不同变量之间的关系(上三角形和下三角形中的图表互为镜像),格子中也可以使用不同的图形。
seaborn通过pairplot和PairGrid轻松实现散点图矩阵。
散点图矩阵-一行代码
sns.pairplot(data=penguins, ).fig.set_dpi(150) #一行代码
散点图矩阵-高度个性化
g = sns.PairGrid(penguins,hue="性别",palette=["#006a8e", "#b1283a"],diag_sharey=False)
g.map_upper(sns.scatterplot,size=penguins["体重"], #散点按照“体重”变化
) #更多参数参考上文章节“7.1 散点图(13种)”
g.map_diag(sns.histplot,multiple="stack", #堆叠
) #更多参数参考上文章节“8.1.12 分组直方图-堆积叠加”
g.map_lower(sns.kdeplot,fill=True, #填充alpha=0.6, #透明度
) #更多参数参考上文章节“8.2 核密度图(16种)”
g.add_legend(title="")
g.fig.set_dpi(150)
换一组palettable中的配色👉palettable实现配色自由
g = sns.PairGrid(penguins,hue="性别",palette=palettable.tableau.BlueRed_6.mpl_colors[0:3],diag_sharey=False)
g.map_upper(sns.scatterplot,size=penguins["体重"],
)
g.map_diag(sns.histplot,multiple="stack",
)
g.map_lower(sns.kdeplot,fill=True,alpha=0.6,
)
g.add_legend(title="")
g.fig.set_dpi(150)
g = sns.PairGrid(penguins,hue="性别",palette=palettable.lightbartlein.diverging.BlueGrey_8_r.mpl_colors[0:3],diag_sharey=False)
g.map_upper(sns.scatterplot,size=penguins["体重"],
)
g.map_diag(sns.histplot,multiple="stack",
)
g.map_lower(sns.kdeplot,fill=True,alpha=0.6,
)
g.add_legend(title="")
g.fig.set_dpi(150)
g = sns.PairGrid(penguins,hue="性别",palette=palettable.cartocolors.qualitative.Bold_9_r.mpl_colors[0:3],diag_sharey=False)
g.map_upper(sns.scatterplot,size=penguins["体重"],
)
g.map_diag(sns.histplot,multiple="stack",
)
g.map_lower(sns.kdeplot,fill=True,alpha=0.6,
)
g.add_legend(title="")
g.fig.set_dpi(150)
更多干货👇