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中DOM方法的动态性
Apr 11 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
Oct 12 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
python编程使用selenium模拟登陆淘宝实例代码
Jan 25 Python
numpy中的高维数组转置实例
Apr 17 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
Django中使用CORS实现跨域请求过程解析
Aug 05 Python
python装饰器原理与用法深入详解
Dec 19 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
python实现文法左递归的消除方法
May 22 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
在pyCharm中下载第三方库的方法
Apr 18 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中调用JAVA
2006/10/09 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
PHP反射学习入门示例
2019/06/14 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
Javascript中级语法快速入手
2016/07/30 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
关于AngularJs数据的本地存储详解
2017/01/20 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
WebPack配置vue多页面的技巧
2018/05/15 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
vue实现父子组件之间的通信以及兄弟组件的通信功能示例
2019/01/29 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
对Python中数组的几种使用方法总结
2018/06/28 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
意大利高端时尚买手店:Stefania Mode
2018/03/01 全球购物
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
学校标语大全
2014/06/19 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
在职证明书模板
2015/06/15 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
nginx实现动静分离的方法示例
2021/11/07 Servers
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS