Python绘制频率分布直方图的示例
Python  /  管理员 发布于 7年前   273
项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直方图非常简洁,因为用的频次非常高,这里记录下来。还是Python大法好,代码简洁不拖沓~
如果数据取值的范围跨度不大,可以使用等宽区间来展示直方图,这也是最常见的一种;如果数据取值范围比较野,也可以自定义区间端点,绘制图像,下面分两种情况展示
1. 区间长度相同绘制直方图
#-*- encoding=utf-8 -*-import datetimeimport numpy as npimport matplotlib.pyplot as pltimport matplotlibzhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')# 按照固定区间长度绘制频率分布直方图# bins_interval 区间的长度# margin 设定的左边和右边空留的大小def probability_distribution(data, bins_interval=1, margin=1): bins = range(min(data), max(data) + bins_interval - 1, bins_interval) print(len(bins)) for i in range(0, len(bins)): print(bins[i]) plt.xlim(min(data) - margin, max(data) + margin) plt.title("probability-distribution") plt.xlabel('Interval') plt.ylabel('Probability') plt.hist(x=data, bins=bins, histtype='bar', color=['r']) plt.show()
2. 区间长度不同绘制直方图
#-*- encoding=utf-8 -*-import datetimeimport numpy as npimport matplotlib.pyplot as pltimport matplotlibzhfont1 = matplotlib.font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc'# 自己给定区间,小于区间左端点和大于区间右端点的统一做处理,对于数据分布不均很的情况处理较友好# bins 自己设定的区间数值列表# margin 设定的左边和右边空留的大小# label 右上方显示的图例文字"""e import numpy as np data = np.random.normal(0, 1, 1000) bins = np.arange(-5, 5, 0.1) probability_distribution_extend(data=data, bins=bins)"""def probability_distribution_extend(data, bins, margin=1, label='Distribution'): bins = sorted(bins) length = len(bins) intervals = np.zeros(length+1) for value in data: i = 0 while i < length and value >= bins[i]: i += 1 intervals[i] += 1 intervals = intervals / float(len(data)) plt.xlim(min(bins) - margin, max(bins) + margin) bins.insert(0, -999) plt.title("probability-distribution") plt.xlabel('Interval') plt.ylabel('Probability') plt.bar(bins, intervals, color=['r'], label=label) plt.legend() plt.show()
Case示例
if __name__ == '__main__': data = [1,4,6,7,8,9,11,11,12,12,13,13,16,17,18,22,25] probability_distribution(data=data, bins_interval=5,margin=0)
效果如下图
以上这篇Python绘制频率分布直方图的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号