matplotlib.pyplot.hist(x, bins=None, density=None, alpha,
histtype='bar', color=None)
hist的常用参数介绍
- x:输入数据,直方图对数据x分区间统计
- bins:统计的区间分布,形如 [0,2,4,6],则统计x在区间[0,2]、[2,4]、[4,6]的频数
- density:bool型,默认为false,即显示频数,true显示频率,注意频率的计算方法是
- histtype: 直方图形状,可选{‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’}之一,默认为bar
- alpha:透明度,0表示完全透明
Example
import numpy as np
import matplotlib.pyplot as plt
lim = 4
width = 0.4
x = np.random.normal(0, 1, 10000) # 生成均值为0,方差为1的正太分布点10000个
bins = np.arange(-lim, lim, width) # 设置直方图的分布区间 start->end step
# 直方图会进行统计各个区间的数值
frequency_each, _1, _2 = plt.hist(x,
bins,
color='fuchsia',
alpha=1,
density=True) # alpha设置透明度,0为完全透明
plt.xlim(-lim, lim) # 设置x轴分布范围
plt.show()
函数会返回统计频率或频数frequency_each,可以用来拟合密度曲线,加入如下语句。注意bins的长度比frequency_each多1,因为bins是边界点,所以可以从bins的第2个元素开始,计算frequencyeach中每个元素对应的中心点,将其作为横坐标,frequency_each作为纵坐标绘制密度曲线。
lim = 4
x = np.random.normal(0, 1, 10000) # 生成均值为0,方差为1的正太分布点10000个
bins = np.arange(-lim, lim, 0.4) # 设置直方图的分布区间 start->end step
# 直方图会进行统计各个区间的数值
frequency_each, _1, _2 = plt.hist(x,
bins,
color='fuchsia',
alpha=1,
density=True) # alpha设置透明度,0为完全透明
plt.xlim(-lim, lim) # 设置x轴分布范围
plt.plot(bins[1:]-0.2/2, frequency_each)
plt.show()
来源:CSDN
作者:GX_Liu
链接:https://blog.csdn.net/weixin_43486780/article/details/104443441