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学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
Numpy数据类型转换astype,dtype的方法
Jun 09 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
pandas ix &amp;iloc &amp;loc的区别
Jan 10 Python
python制作填词游戏步骤详解
May 05 Python
关于Python作用域自学总结
Jun 10 Python
Django REST framework 分页的实现代码
Jun 19 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
PyTorch的Optimizer训练工具的实现
Aug 18 Python
python中线程和进程有何区别
Jun 17 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二分法在IP地址查询中的应用
2008/08/12 PHP
php 获取SWF动画截图示例代码
2014/02/10 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
Bootstrap入门教程一Hello Bootstrap初识
2017/03/02 Javascript
Vue实现动态显示textarea剩余字数
2017/05/22 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue动画—通过钩子函数实现半场动画操作
2020/08/09 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
Python实现配置文件备份的方法
2015/07/30 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python自定义异常实例详解
2017/07/11 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
python实现图书管理系统
2018/03/12 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
Python中if有多个条件处理方法
2020/02/26 Python
python实现经典排序算法的示例代码
2021/02/07 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
社会发展项目建议书
2014/08/25 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
处罚决定书范文
2015/06/24 职场文书
爱的教育读书笔记
2015/06/26 职场文书
委托书范本格式
2019/04/18 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android