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中MYSQLdb出现乱码的解决方法
Oct 11 Python
Python闭包实现计数器的方法
May 05 Python
深入解析Python中的WSGI接口
May 11 Python
Python中的descriptor描述器简明使用指南
Jun 02 Python
对python的文件内注释 help注释方法
May 23 Python
Python并行分布式框架Celery详解
Oct 15 Python
解决Python3 控制台输出InsecureRequestWarning问题
Jul 15 Python
python脚本实现音频m4a格式转成MP3格式的实例代码
Oct 09 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
python清空命令行方式
Jan 13 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
通用的Django注册功能模块实现方法
Feb 05 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示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
基于jquery的大众点评,分类导航实现代码
2011/08/23 Javascript
JavaScript学习心得之概述
2015/01/20 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
vue+echarts实现中国地图流动效果(步骤详解)
2021/01/27 Vue.js
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
Python重新加载模块的实现方法
2018/10/16 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
Nili Lotan官网:Nili Lotan同名品牌
2018/01/07 全球购物
欢送退休感言
2014/02/08 职场文书
审计专业自荐信范文
2014/04/21 职场文书
大二学年个人总结
2015/03/03 职场文书
行政介绍信范文
2015/05/04 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
教师培训简讯
2015/07/20 职场文书
2019学生会干事辞职信
2019/06/27 职场文书