【数据分析】【Pandas】(一)如何制作频率分布直方图

文章介绍了直方图和密度图作为数据分布的两种常见可视化方式,直方图用于离散型数据,而密度图适用于连续变量。在Python中,可以使用matplotlib库创建直方图和密度图,例如通过设置bins和normed参数来调整直方图,以及利用GaussianKDE进行密度图的绘制。同时,文章展示了如何在同一图表中同时显示直方图和密度图,以便于对比分析数据分布。
摘要由CSDN通过智能技术生成

概述

  • 计算一组数据的分布有助于我们更好的了解数据构成,我们可以通过直方图或密度图,将离散的数据通过连续的方式展现出来。

  • 数据分布(频数分布):在各组按顺序排列的基础上,列出每个组的总体单位数,形成一个数列,称次数分布数列,简称分配数列,各组的总体单位数叫次数或频数。

1. 直方图

直方图:离散型随机变量通过取值范围的规定,通过计数形式展示。直方图的横轴是一个区间,高度是指区间里表示有多少数落在其中,与柱状图不同。
注意:直方图不允许出现缺失值,所以可以借助以下代码删除空值。

df.dropna(subset=['列'],inplace=True)

注意画图的前需要正确显示中文的方式:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"]='SimHei'
plt.rcParams['axes.unicode_minus']=False
%config InlineBackend.figure_format='svg'

画柱状图需要要点:
bins:设置柱子的数量 或者 区间
normed:纵坐标显示从频数转为频率;现版本用density

plt.hist(df['列'],bins=20)
plt.hist(df['列'],bins=np.arange(df['列'].min(),arange(df['列'].max(),3),normed=True)
plt.show()

在这里插入图片描述

2. 密度图

密度图表现与数据值对应的边界或域对象的一种理论图形表示方法。一般用于呈现连续变量。密度图的基本架构如图所示。直方图每个柱子顶的中点连接就是密度图(拟合)。

import matplotlib.mlab as mlab
kde=mlab.GaussianKDE(df['列'])
x = np.linspace(df['列'].min(),df['列'].max(),1000)
line = plt.plot(x,kde(x)  #这里是kde的函数
plt.show()

**注意:**当直方图与密度图想要呈现在同一张图中,需要统一纵坐标的值

#注意直方图上添加核密度图,必须将直方图频数更改为频率,即normed参数设置成True
#直方图
df.年龄.plot(kind="hist",bins=20,color="steelblue",edgecolor="black",normed=True,label="直方图")

#加核密度图
df.年龄.plot(kind="kde",color="red",label="核密度图")

#添加x轴和y轴标签
plt.xlabel("年龄")
plt.ylabel("核密度值")

#添加标题
plt.title("患者年龄分布")

#显示图例
plt.legend()

#显示图形
plt.show()

更多内容参考: https://cloud.tencent.com/developer/article/1587884

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值