matplotlib直方图_数据分析-matplotlib直方图

直方图的核心代码是:hist(),想绘制直方图,必须是没有统计过的数据(比如说一部60-65分钟的电影,如果我们已经知道60-65分钟的电影有8部,我们就不能用直方图了)

直方图应用场景:用户的年龄分布状态;一段时间内用户的点击次数分布状态;用户活跃时间的分布状态。

有多部电影把他们按时长分布绘制图形

#多部电影按时长绘制图形from matplotlib import pyplot as pyimport randomimport matplotlibfrom matplotlib import font_managera=[60,120,111,79,67,90,73,98,97,63,82,109,108,120,80,76,67,70,90,100]print(min(a),max(a),max(a)-min(a))#组距,这个是自己设置b=3#组数,组数等于极差除以组距g_num=(max(a)-min(a))//bprint(g_num)#刻度,只有max(a)+b才能取到所有值py.xticks(range(min(a),max(a)+b,b))#绘图py.hist(a,g_num)py.grid()#展示图形py.show()

绘制的图形

6a897595549e4f7e50d01a6f6926ee31.png

切记,极差与组距整除,才能被保证绘制的图形能与刻度对齐

比如,如果不能被整除的话,这里我们可以把组距调整为7,7不能被60整除

#多部电影按时长绘制图形from matplotlib import pyplot as pyimport randomimport matplotlibfrom matplotlib import font_managera=[60,120,111,79,67,90,73,98,97,63,82,109,108,120,80,76,67,70,90,105]print(min(a),max(a),max(a)-min(a))#组距,这个是自己设置b=7#组数g_num=(max(a)-min(a))//bprint(g_num)#刻度,max(a)+b才能qu'daopy.xticks(range(min(a),max(a)+b,b))#绘图py.hist(a,g_num)py.grid()#展示图形py.show()

绘制的图形与刻度是有偏差的,网格线与直方图相比偏左

bedaef7bc5583808d4ec7b0af955e5e4.png

当然也可以绘制概率的图形,只需要在hist()里再加一句normed=True,如果遇到这种提示:The 'normed' kwarg was deprecated in Matplotlib 2.1 and will be removed in 3.1. Use 'density' instead.就需要把normed=True替换成density=True.

#多部电影按时长绘制图形from matplotlib import pyplot as pyimport randomimport matplotlibfrom matplotlib import font_managera=[60,120,111,79,67,90,73,98,97,63,82,109,108,120,80,76,67,70,90,105]print(min(a),max(a),max(a)-min(a))#组距,这个是自己设置b=3#组数g_num=(max(a)-min(a))//bprint(g_num)#刻度,max(a)+b才能qu'daopy.xticks(range(min(a),max(a)+b,b))#绘图py.hist(a,g_num,density=True)py.grid()#展示图形py.show()

绘制的图形:

076b1b8d1d179b7cd1bcb378254be433.png

hist()可以传入的的三种参数汇总:

890203ada1e96edccf8428842f4a5884.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值