Python绘制频率分布直方图

项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直方图非常简洁,因为用的频次非常高,这里记录下来。还是Python大法好,代码简洁不拖沓~

如果数据取值的范围跨度不大,可以使用等宽区间来展示直方图,这也是最常见的一种;如果数据取值范围比较野,也可以自定义区间端点,绘制图像,下面分两种情况展示

plt.hist函数中有个参数normed默认是None,表示不对数据进行归一化,这个情况绘制出来的就是频次直方图,加了normed=True,之后就是标准的频率直方图

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')# 频率分布normed=True,频次分布normed=Falseprob,left,rectangle = plt.hist(x=data, bins=bins, normed=True, histtype='bar', color=['r'])for x, y in zip(left, prob):# 字体上边文字# 频率分布数据 normed=Trueplt.text(x + bins_interval / 2, y + 0.003, '%.2f' % y, ha='center', va='top')# 频次分布数据 normed=False# plt.text(x + bins_interval / 2, y + 0.25, '%.2f' % y, ha='center', va='top')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     右上方显示的图例文字
"""eimport numpy as npdata = 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 = 0while i < length and value >= bins[i]:i += 1intervals[i] += 1intervals = 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绘制频率分布直方图相关推荐

  1. 频率分布直方图组距如何确定_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

  2. matlab 频率分布直方图_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

  3. python 画频率分布直方图求平均数_Python绘制频率分布直方图

    Python绘制频率分布直方图 项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用.概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用Python绘制频率分布直 ...

  4. python绘制直方图根据不同分类_小猿圈Python开发之绘制频率分布直方图示例

    现在人工智能越来越实用,甚至深入到千家万户,随之而来的就是python技术的火爆,今天小猿圈python讲师为你讲解一下绘制频率分布直方图示例,希望对于刚刚自学python的你有一定的帮助. 项目中在 ...

  5. python绘制简单直方图-python plotly绘制直方图实例详解

    python plt怎么绘制直方图 # /usr/bin/python# -*- coding: utf-8 -*-import numpy as npfrom matplotlib import p ...

  6. 【python图像处理】python绘制灰度直方图

    灰度直方图在数据统计分析.图像处理中有着比较广泛的应用,下面就介绍一下如何使用python来绘制灰度直方图. 下面直接看代码: import matplotlib.pyplot as plt impo ...

  7. R_Studio(学生成绩)绘制频率分布直方图、分布饼图、折线比较图

    对"Gary.csv"中的成绩数据进行分布分析 (1)按0-59,60-69,70-79,80-89,90-100分组绘制高级语言程序设计成绩的频率分布直方图. (2)按0-59, ...

  8. 如何用python绘制灰度直方图_python如何显示图像的灰度直方图-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python opencv处理 ...

  9. python绘制灰度直方图_python+opencv 灰度直方图及其二值化

    图像直方图(histogram)是图像的统计学特征,常用于了解图像的基本特征以便分析.不过图像的直方图不具有空间特征. 图像的灰度直方图(histogram),就是将图像转化成灰度图像之后,统计各个像 ...

最新文章

  1. Python:cv2.imread读入图片后返回NoneType的解决方案
  2. 【原创】2009个性签名和流行语搜集
  3. CVP(Critical Value Pruning)illustration with clear principle in details
  4. linuxoracle静默安装应答文件修改_Oracle 19c的examples静默安装
  5. SpringCloud(三)之Feign实现负载均衡的使用
  6. JAVA-Lambda表达式
  7. TCP/IP,HTTP,Socket的区别与联系
  8. 【Elasticsearch】es Root mapping definition has unsupported parameters
  9. callback函数_Nodejs 源码解析 util.promisify 如何将 Callback 转为 Promise
  10. linux动态追踪神器——Strace实例介绍【转】
  11. 行业方案|“机场”行业智能运维解决方案介绍
  12. 数学建模:层次分析法
  13. struts2拦截器原理
  14. QTreeWidget的右键菜单实现
  15. 样本不平衡的解决方案(很详细)
  16. Python常用库汇总
  17. 渗透测试学习 二、Windows基础
  18. Endnote Reference styles参考文献引用模版制作——附毕设大论文引用模版
  19. jmeter录制手机脚本
  20. Selenium-鼠标和键盘操作

热门文章

  1. 对机械电子的一些看法
  2. SaoMl二开带app最新版
  3. 大数据开发基础入门与项目实战(一)Java SE之1.初识计算机和Java语言
  4. 【Java开发】设计模式 03:建造者模式
  5. java 正则表达式空格无法匹配
  6. post请求--爬取有道翻译
  7. 启智社区“我为开源狂”第六期活动小白教程之基础活跃榜
  8. Let's Encrypt证书生成,certbot-auto 生成ssl通用证书 配置https 自动续期
  9. php 生成GUID
  10. 11、Filter(过滤器 重点)