直方图
data = Series(data=np.random.randn(1000))
data.plot(kind='hist')
直方图:统计的是每个数据区间,数据出现的次数
normed:把次数转换成可能出现的概率
核密度估计,把每个数据区间可能出现的概率进行统计
data.plot(kind='hist', bins=5, normed=True)
data.plot(kind='kde')
rondom 生成随机数百分比直方图,调用hist方法
- 柱高表示数据的频数,柱宽表示各组数据的组距
- 参数bins可以设置直方图方柱的个数上限,越大柱宽越小,数据分组越细致
- 设置normed参数为Ture,可以把频数转换为概率
kde图: - 核密度估计,用于弥补直方图由参数bins设置的不合理导致的精度缺失问题
练习
绘制一个由两个不同的标准正态分布组成的的双峰分布
s1 = Series(data=np.random.normal(loc=80,scale=10,size=(100)))
s2 = Series(data=np.random.normal(loc=150,scale=20,size=(100)))
s = pd.concat((s1, s2))
s.shape
s.plot(kind='hist', bins=20, normed=True)
s.plot(kind='kde')
分别绘制男性、女性的消费账单的分布状况
# 图例加载
# 在plot绘图函数中, 添加label参数, 后面接受一个字符串, 表示该图像在图例中标注的名称
# 在绘图的最后,通过plt.legend() 开启图例
tips.qurey('sex == "Female"').total_bill.plot(kind='hist',bins=5,normed=True,lable="Female")
tips.query('sex == "Female"').total_bill.plot(kind='kde', label="Female_kde")
tips.query('sex == "Male"').total_bill.plot(kind='hist', bins=5, normed=True, label="Male")
tips.query('sex == "Male"').total_bill.plot(kind='kde', label="Male_kde")
# 手动开启图例
plt.legend()