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使用bs4获取58同城城市分类的方法
Jul 08 Python
Python多线程经典问题之乘客做公交车算法实例
Mar 22 Python
python制作小说爬虫实录
Aug 14 Python
浅谈tensorflow中几个随机函数的用法
Jul 27 Python
对pandas中iloc,loc取数据差别及按条件取值的方法详解
Nov 06 Python
Python基于Tkinter模块实现的弹球小游戏
Dec 27 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
Python TestCase中的断言方法介绍
May 02 Python
Python 占位符的使用方法详解
Jul 10 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
详解Python中的for循环
Apr 30 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
php利用cookie实现访问次数统计代码
2011/05/19 PHP
php的zip解压缩类pclzip使用示例
2014/03/14 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
Prototype ObjectRange对象学习
2009/07/19 Javascript
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
2011/07/11 Javascript
jquery实现树形二级菜单实例代码
2013/11/20 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
人机交互程序 python实现人机对话
2017/11/14 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
python批量下载抖音视频
2019/06/17 Python
python小项目之五子棋游戏
2019/12/26 Python
Python tkinter模版代码实例
2020/02/05 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
DogBuddy荷兰:找到你最完美的狗保姆
2019/04/17 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
材料化学应届生求职信
2013/10/09 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
十八大标语口号
2014/10/09 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2016年习主席讲话学习心得体会
2016/01/20 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL