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中的闭包实例详解
Aug 29 Python
Python自动化构建工具scons使用入门笔记
Mar 10 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
python数据封装json格式数据
Mar 04 Python
python 除法保留两位小数点的方法
Jul 16 Python
​如何愉快地迁移到 Python 3
Apr 28 Python
python中metaclass原理与用法详解
Jun 25 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
python使用if语句实现一个猜拳游戏详解
Aug 27 Python
python读取多层嵌套文件夹中的文件实例
Feb 27 Python
python实现五子棋程序
Apr 24 Python
Python编程根据字典列表相同键的值进行合并
Oct 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
完善CodeIgniter在IDE中代码提示功能的方法
2014/07/19 PHP
php字符串函数学习之strstr()
2015/03/27 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
2016/02/27 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
jQuery插件StickUp实现网页导航置顶
2015/04/12 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
express 项目分层实践详解
2018/12/10 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
python getopt 参数处理小示例
2009/06/09 Python
python开启多个子进程并行运行的方法
2015/04/18 Python
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
pandas进行数据的交集与并集方式的数据合并方法
2018/06/27 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
Python实现 PS 图像调整中的亮度调整
2019/06/28 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
2020/05/23 Python
Python 字典中的所有方法及用法
2020/06/10 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
CSS3的transition和animation的用法实例介绍
2014/08/20 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
超市国庆节促销方案
2014/02/20 职场文书
指导教师推荐意见
2015/06/05 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android
SpringCloud项目如何解决log4j2漏洞
2022/04/10 Java/Android