文章目录
- 概述
- 1. 直方图
- 2. 密度图
概述
-
计算一组数据的分布有助于我们更好的了解数据构成,我们可以通过直方图或密度图,将离散的数据通过连续的方式展现出来。
-
数据分布(频数分布):在各组按顺序排列的基础上,列出每个组的总体单位数,形成一个数列,称次数分布数列,简称分配数列,各组的总体单位数叫次数或频数。
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