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简单实现旋转图片的方法
May 30 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python有序查找算法之二分法实例分析
Dec 11 Python
python3爬虫之设计签名小程序
Jun 19 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
python代理工具mitmproxy使用指南
Jul 04 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
Jan 02 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 Python
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
May 26 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+AJAX聊天程序[聊天室]提供下载
2007/07/21 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
javaScript语法总结
2016/11/25 Javascript
简单实现node.js图片上传
2016/12/18 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
微信小程序实现左滑删除效果
2020/11/18 Javascript
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python制作词云的方法
2018/01/03 Python
python实现猜单词小游戏
2020/05/22 Python
Python----数据预处理代码实例
2019/03/20 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
六道php面试题附答案
2014/06/05 面试题
渗透攻击的测试步骤
2014/06/07 面试题
介绍一下MD5加密算法
2016/11/12 面试题
麦当劳辞职信范文
2014/01/18 职场文书
2014党员民主评议个人总结
2014/09/10 职场文书
党员反对四风问题思想汇报
2014/09/12 职场文书
公司领导班子群众路线四风问题对照检查材料
2014/10/02 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
画错魏国疆域啦!《派对咖孔明》动画因作画失误于官网致歉
2022/04/07 日漫