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的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
django开发之settings.py中变量的全局引用详解
Mar 29 Python
使用Python实现微信提醒备忘录功能
Dec 04 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Python 编程速成(推荐)
Apr 15 Python
Python中py文件转换成exe可执行文件的方法
Jun 14 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
给ubuntu18安装python3.7的详细教程
Jun 08 Python
基于opencv的selenium滑动验证码的实现
Jul 24 Python
pycharm中使用request和Pytest进行接口测试的方法
Jul 31 Python
python编写函数注意事项总结
Mar 29 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
根德YB400的电路分析
2021/03/02 无线电
一些php技巧与注意事项分析
2011/02/03 PHP
php去除重复字的实现代码
2011/09/16 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
解析isset与is_null的区别
2013/08/09 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
谷歌浏览器 insertCell与appendChild的区别
2009/02/12 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
Express URL跳转(重定向)的实现方法
2017/04/07 Javascript
jQuery中过滤器的基本用法示例
2017/10/11 jQuery
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
nodejs+express搭建多人聊天室步骤
2018/02/12 NodeJs
使用layui日期控件laydate对开始和结束时间进行联动控制的方法
2019/09/06 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python ZipFile模块详解
2013/11/01 Python
python用post访问restful服务接口的方法
2018/12/07 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
倡议书范文格式
2014/05/12 职场文书
无房证明样本
2015/06/17 职场文书
运动会主持词大全
2015/07/02 职场文书
大学校园招聘会感想
2015/08/10 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
CocosCreator入门教程之网络通信
2021/04/16 Javascript