数据可视化在探索数据特征和模式识别中扮演着关键角色,随着数据集的复杂性和维度的增加,有效地展示多个变量之间的关系变得愈发重要,本文将探讨如何利用 Python 中的 Seaborn 库,结合 matplotlib 的功能,实现多边缘可视化,多边缘可视化不仅可以展示变量之间的散点分布,还能在边缘添加附加信息,如直方图和密度图,以提供更全面的数据理解,为了具体展示该技术的应用,以经典的鸢尾花数据集为例,演示如何通过 Seaborn 的 JointGrid 类,同时展示散点图及其边缘的分布信息,通过这种方式,读者将能够理解如何利用 Seaborn 的强大功能,有效地探索和呈现多变量数据的关联关系,有读者阅读了文章论文可视化设计:掌握 Seaborn 15 种精美数据可视化,对于其中如何根据联合分布图绘制多边缘可视化存在疑问这里以一篇短小的文章来实现这个可视化
代码实现
mport seaborn as sns
import matplotlib.pyplot as plt
# 载入鸢尾花数据集
data = sns.load_dataset('iris')
plt.figure(figsize=(15,5), dpi=300)
sns.jointplot(x="sepal_length", y="sepal_width", data=data,
palette='Set2',hue='species')
plt.show()
这是一个简单的联合分布,边缘可视化只存在一种可视化类型——密度图,而在论文中一般会看到边缘分布可视化会存在多种类型的可视化,如何绘制这种可视化呢?在seaborn中可以通过定义JointGrid 对象来实现,参考以下代码
plt.figure(figsize=(8, 6))
# 创建 JointGrid 对象
g = sns.JointGrid(data=data, x="sepal_length", y="sepal_width", hue="species", height=10, palette='Set2')
# 绘制中心的散点图
g.plot_joint(sns.scatterplot)
# 添加边缘的柱状图
g.plot_marginals(sns.histplot, kde=False, element='bars', multiple='dodge', alpha=0.8)
# 添加边缘的密度图
g.plot_marginals(sns.kdeplot, fill=True, common_norm=False, alpha=0.5)
# 显示图形
plt.show()
这里边缘可视化存在柱状图、密度图两种可视化,读者可根据自己的需求去添加修改可视化类型,这里由于数据原因密度图并不明显,下面更换指标再进行可视化
# 创建 JointGrid 对象
g = sns.JointGrid(data=data, x="petal_length", y="petal_width", hue="species", height=10, palette='Set2')
# 绘制中心的散点图
g.plot_joint(sns.scatterplot)
# 添加边缘的柱状图
g.plot_marginals(sns.histplot, kde=False, element='bars', multiple='dodge', alpha = 0.8)
# 添加边缘的密度图
g.plot_marginals(sns.kdeplot, fill=True, common_norm=False, alpha=0.5)
plt.show()
往期推荐
KAN:Kolmogorov–Arnold Networks分类模型实现
论文可视化设计:掌握 Seaborn 15 种精美数据可视化
PDP(部分依赖图)、ICE(个体条件期望)解释机器学习模型保姆级教程
ARIMA与Prophet的完美结合:AutoARIMAProphet时序模型
如果你对类似于这样的文章感兴趣。
欢迎关注、点赞、转发~
个人观点,仅供参考