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 02 Python
Python运算符重载用法实例
May 28 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
Linux 修改Python命令的方法示例
Dec 03 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
Python中Unittest框架的具体使用
Aug 27 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
Python之京东商品秒杀的实现示例
Jan 06 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 Python
python中validators库的使用方法详解
Sep 23 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与数据库代码开发规范
2013/08/08 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
php中Snoopy类用法实例
2015/06/19 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
js简单工厂模式用法实例
2015/06/30 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
JS检测移动端横竖屏的代码
2016/05/30 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
2016/07/05 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
Vuex的实战使用详解
2019/10/31 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
Python的函数嵌套的使用方法
2014/01/24 Python
python中split方法用法分析
2015/04/17 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
python django生成迁移文件的实例
2019/08/31 Python
PyTorch实现重写/改写Dataset并载入Dataloader
2020/07/14 Python
python接口自动化框架实战
2020/12/23 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
2014年教师培训的自我评价
2014/01/03 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
门市房租房协议书
2014/12/04 职场文书
上课讲话检讨书范文
2015/05/07 职场文书
家属联谊会致辞
2015/07/31 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers