python绘制分组直方图,实用又美观

直方图是很有用的查看数据分布的一种可视化方法。如果一列数据有3个类别,我们想知道每个类别的概率分布,又想知道每个类别间的概率分布差异,那么就要用到分组直方图。话不多说,直接上代码上图。

import pandas as pd  
import numpy as np  

# 数据生成(随机生成一个符合正态分布的序列,并将序列分为3份,标记为A/B/C)
def createFunc():
    values = np.random.normal(loc=0, scale=1, size=1000)  
    labels_A = np.repeat('A', 100)  
    labels_B = np.repeat('B', 300)  
    labels_C = np.repeat('C', 600)  
    labels = np.concatenate([labels_A, labels_B, labels_C])  
    np.random.shuffle(labels)  
    df = pd.DataFrame({'value': values, 'label': labels})  
    return df
df=createFunc()
  
# 绘制分组直方图
label_lst=list(set(df['label']))
for item in label_lst:
    x=df['value'][df['label']==item]
    plt.hist(x,bins=50,alpha=0.5,label=str(item)+': '+ str(len(x)))
plt.xlim(0,max(df['value']))
plt.legend(loc='upper right')
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值