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

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

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

1

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

快速绘制

  1. 基于seaborn

    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()
    

    2

  2. 基于matplotlib

    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()
    

    3

定制多样化的二维密度图

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

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

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()

4

总结

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

共勉~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值