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中的列表推导浅析
Apr 26 Python
python监控网卡流量并使用graphite绘图的示例
Apr 27 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
python中logging库的使用总结
Oct 18 Python
Python语言进阶知识点总结
May 28 Python
Python通用函数实现数组计算的方法
Jun 13 Python
快速解决vue.js 模板和jinja 模板冲突的问题
Jul 26 Python
python opencv调用笔记本摄像头
Aug 28 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
使用numpy nonzero 找出非0元素
May 14 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 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实现的mongodb操作类
2015/05/28 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
2016/10/16 Javascript
ES6中javascript实现函数绑定及类的事件绑定功能详解
2017/11/08 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
微信小程序实现订单倒计时
2020/11/01 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
[03:55]DOTA2完美大师赛选手传记——LFY.MONET
2017/11/18 DOTA
Linux下为不同版本python安装第三方库
2016/08/31 Python
利用Python破解验证码实例详解
2016/12/08 Python
Python对象类型及其运算方法(详解)
2017/07/05 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python中用pyinstaller打包时的图标问题及解决方法
2020/02/17 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
2020/05/26 Python
使用K.function()调试keras操作
2020/06/17 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
后进生转化工作制度
2014/01/17 职场文书
大学老师推荐信
2014/02/25 职场文书
中式婚礼主持词
2014/03/13 职场文书
广告创意求职信
2014/03/17 职场文书
小学生作文评语
2014/04/18 职场文书
行政上诉状范文
2015/05/23 职场文书
2016年社会主义核心价值观心得体会
2016/01/21 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书