重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用Python怎么绘制一个频率分布直方图?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都做网站、成都网站建设、网站策划、网页设计、域名注册、网页空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。1. 区间长度相同绘制直方图
#-*- encoding=utf-8 -*- import datetime import numpy as np import matplotlib.pyplot as plt import matplotlib zhfont1 = 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 datetime import numpy as np import matplotlib.pyplot as plt import matplotlib zhfont1 = 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怎么绘制一个频率分布直方图问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。