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

关系(六)利用python绘制二维密度图

作者头像
HsuHeinrich
发布2024-05-27 17:02:23
510
发布2024-05-27 17:02:23
举报
文章被收录于专栏:HsuHeinrichHsuHeinrich

关系(六)利用python绘制二维密度图

二维密度图(2D Density Chart)简介

二维密度图可以表示两个数值变量组合的分布,通过颜色渐变(或等高线高低)表示区域内观测值的数量。既可以识别数据集中趋势,也可以分析两个变量之间是否存在某种关系等,

快速绘制

基于seaborn

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

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

# 利用kdeplot函数快速绘制
sns.kdeplot(x=df.sepal_width, y=df.sepal_length)
plt.show()

基于matplotlib

代码语言:javascript
复制
import matplotlib.pyplot as plt
import numpy as np
from scipy.stats import gaussian_kde

# 导入数据
df = sns.load_dataset('iris')
x = df.sepal_width
y = df.sepal_length

# gaussian kde
nbins=300
k = gaussian_kde([x,y])
xi, yi = np.mgrid[x.min():x.max():nbins*1j, y.min():y.max():nbins*1j]
zi = k(np.vstack([xi.flatten(), yi.flatten()]))

# 绘制密度图
plt.pcolormesh(xi, yi, zi.reshape(xi.shape), shading='auto')
plt.show()

定制多样化的二维密度图

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

seaborn主要利用kdeplot绘制二维密度图,可以通过seaborn.kdeplot[1]了解更多用法

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

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

# 自定义颜色、阴影、带宽、透明度
sns.kdeplot(x=df.sepal_width, y=df.sepal_length, cmap="Reds", fill=True, bw_adjust=.5, thresh=0.1)
plt.show()

总结

以上通过seaborn的kdeplot和matplotlib的pcolormesh(在自定义密度函数gaussian_kde基础上)快速绘制二维密度图,并通过修改参数或者辅以其他绘图知识自定义各种各样的二维密度图来适应相关使用场景。

共勉~

参考资料

[1]

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

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

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

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

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

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