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实现socket客户端和服务端简单示例
Feb 24 Python
Python中条件判断语句的简单使用方法
Aug 21 Python
使用py2exe在Windows下将Python程序转为exe文件
Mar 04 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
python网络编程调用recv函数完整接收数据的三种方法
Mar 31 Python
Python + selenium自动化环境搭建的完整步骤
May 19 Python
浅谈Python traceback的优雅处理
Aug 31 Python
pandas读取csv文件,分隔符参数sep的实例
Dec 12 Python
python实现五子棋游戏
Jun 18 Python
Python Subprocess模块原理及实例
Aug 26 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 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 $_SERVER当前完整url的写法
2009/11/12 PHP
php快速url重写 更新版[需php 5.30以上]
2010/04/20 PHP
php实现分页显示
2015/11/03 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
JavaScript错误处理
2015/02/03 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
详解cordova打包成webapp的方法
2017/10/18 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
python模拟登陆Tom邮箱示例分享
2014/01/13 Python
初步解析Python下的多进程编程
2015/04/28 Python
Python  unittest单元测试框架的使用
2018/09/08 Python
python修改txt文件中的某一项方法
2018/12/29 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
基于pytorch padding=SAME的解决方式
2020/02/18 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
详解python中的闭包
2020/09/07 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
html5 Canvas画图教程(5)—canvas里画曲线之arc方法
2013/01/09 HTML / CSS
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
高分子材料与工程专业个人求职信
2013/12/15 职场文书
分层教学实施方案
2014/03/19 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
个人违纪检讨书
2014/09/15 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
单位计划生育责任书
2015/05/09 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
党员转正申请报告
2015/05/15 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers