Python绘制频率分布直方图的示例


Posted in Python onJuly 08, 2019

项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直方图非常简洁,因为用的频次非常高,这里记录下来。还是Python大法好,代码简洁不拖沓~

如果数据取值的范围跨度不大,可以使用等宽区间来展示直方图,这也是最常见的一种;如果数据取值范围比较野,也可以自定义区间端点,绘制图像,下面分两种情况展示

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绘制频率分布直方图的示例

以上这篇Python绘制频率分布直方图的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python设计模式之代理模式实例
Apr 26 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
python爬虫获取多页天涯帖子
Feb 23 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
浅谈python实现Google翻译PDF,解决换行的问题
Nov 28 Python
python用pandas数据加载、存储与文件格式的实例
Dec 07 Python
Python Flask框架扩展操作示例
May 03 Python
Python使用scipy模块实现一维卷积运算示例
Sep 05 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
浅析python字符串前加r、f、u、l 的区别
Jan 24 Python
pytorch常用数据类型所占字节数对照表一览
May 17 Python
Django Paginator分页器的使用示例
Jun 23 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 #Python
简单了解python关系(比较)运算符
Jul 08 #Python
Win10下Python3.7.3安装教程图解
Jul 08 #Python
python3.7简单的爬虫实例详解
Jul 08 #Python
在python中画正态分布图像的实例
Jul 08 #Python
python实现beta分布概率密度函数的方法
Jul 08 #Python
python中pip的使用和修改下载源的方法
Jul 08 #Python
You might like
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
JS分割字符串并放入数组的函数
2011/07/04 Javascript
js 采用delete实现继承示例代码
2014/05/20 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
Bootstrap按钮组简单实现代码
2017/03/06 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python实现从网络下载文件并获得文件大小及类型的方法
2015/04/28 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
kafka-python批量发送数据的实例
2018/12/27 Python
对pandas通过索引提取dataframe的行方法详解
2019/02/01 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
2020/02/18 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
西尔斯百货官网:Sears
2016/09/06 全球购物
哥伦比亚加拿大官网:Columbia Sportswear Canada
2020/09/07 全球购物
建筑自我鉴定
2013/10/19 职场文书
报关员个人职业生涯规划书
2014/03/12 职场文书
GMP办公室主任岗位职责
2014/03/14 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
房产公证书样本
2015/01/23 职场文书
三行辞职书范文
2015/02/26 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python
浅谈Python类的单继承相关知识
2021/05/12 Python
python函数的两种嵌套方法使用
2022/04/02 Python