前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关系(三)利用python绘制相关矩阵图

关系(三)利用python绘制相关矩阵图

作者头像
HsuHeinrich
发布2024-04-11 20:17:04
3000
发布2024-04-11 20:17:04
举报
文章被收录于专栏:HsuHeinrich

关系(三)利用python绘制相关矩阵图

相关矩阵图(Correlogram)简介

1

相关矩阵图既可以分析每对变量之间的相关性,也可以分析单变量的分布情况。相关性以散点图的形式可视化,对角线用直方图/密度图表示每个变量的分布。

快速绘制

基于seaborn

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pyplot as plt

# 导入数据
df = sns.load_dataset('iris')

# 利用pairplot函数绘制相关矩阵图
sns.pairplot(df)

plt.show()

2

基于matplotlib

代码语言:javascript
复制
import matplotlib.pyplot as plt

# 导入数据
df = sns.load_dataset('iris')

# 定义基本变量
COLUMNS = ["sepal_length", "sepal_width", "petal_length", "petal_width"]
COLORS = ["#386cb0", "#fdb462", "#7fc97f"]
SPECIES = ["setosa", "versicolor", "virginica"]

# 初始化布局4*4
fig, axes = plt.subplots(4, 4, figsize = (12, 8), sharex="col", tight_layout=True)

for i in range(len(COLUMNS)):
    for j in range(len(COLUMNS)):
        # 下三角添加散点图
        if i > j:
            for species, color in zip(SPECIES, COLORS):
                data = df[df["species"] == species]
                axes[i, j].scatter(COLUMNS[j], COLUMNS[i], color=color, alpha=0.5, data=data)
                
        # 对角线添加直方图
        if i == j:
            for species, color in zip(SPECIES, COLORS):
                data = df[df["species"] == species]
                axes[i, j].hist(COLUMNS[j], bins=15, alpha=0.5, data=data)
        
        # 上三角剔除边框
        if i < j:
            axes[i, j].remove()
            
plt.show()

3

定制多样化的相关矩阵图

自定义相关矩阵图一般是结合使用场景对相关参数进行修改,并辅以其他的绘图知识。参数信息可以通过官网进行查看,其他的绘图知识则更多来源于实战经验,大家不妨将接下来的绘图作为一种学习经验,以便于日后总结。

seaborn主要利用pairplot绘制相关矩阵图,可以通过seaborn.pairplot[1]了解更多用法

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pyplot as plt

# 导入数据
df = sns.load_dataset('iris')

# 自定义参数
sns.pairplot(df, kind="scatter",  # 散点图,不带拟合线
                 hue="species",   # 对species进行分组(不同颜色)
                 plot_kws=dict(s=80, edgecolor="white", linewidth=2.5) # 自定义绘制参数
        )
plt.show()

4

也可以利用PairGrid自定义更为灵活的相关矩阵图,可以通过seaborn.pairplot[2]了解更多用法

代码语言:javascript
复制
import seaborn as sns
import matplotlib.pyplot as plt

# 导入数据
df = sns.load_dataset('iris')

g = sns.PairGrid(df, diag_sharey=False)
# 上三角散点图
g.map_upper(sns.scatterplot)
# 下三角密度图
g.map_lower(sns.kdeplot)
# 对角线密度图
g.map_diag(sns.kdeplot)

plt.show()

5

总结

以上通过seaborn的pairplot快速绘制相关矩阵图,也可以利用matplotlib自定义绘制相关矩阵图。并通过修改参数或者辅以其他绘图知识自定义各种各样的相关矩阵图来适应相关使用场景。

共勉~

参考资料

[1]

seaborn.pairplot: https://seaborn.pydata.org/generated/seaborn.pairplot.html

[2]

seaborn.pairplot: https://seaborn.pydata.org/generated/seaborn.PairGrid.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HsuHeinrich 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关系(三)利用python绘制相关矩阵图
    • 相关矩阵图(Correlogram)简介
      • 快速绘制
        • 定制多样化的相关矩阵图
          • 总结
            • 参考资料
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档