本文分享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)
更多干貨👇?