项目中在前期经常要看下数据的分布情况,这对于探究数据规律非常有用。概率分布表示样本数据的模样,长的好不好看如果有图像展示出来就非常完美了,使用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绘制频率分布直方图的示例相关推荐

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

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

  2. python画五角星为什么144度_python绘制五角星

    分享一个使用Python绘制的五角星小案例,欢迎留言探讨指正,大佬勿喷,抱拳 下面呈上小代码 代码: import turtle #导入turtle库包 turtle.fillcolor(" ...

  3. 用python画数学函数图像教程_Python 绘制你想要的数学函数图形

    Python 非常热门,但除非工作需要没有刻意去了解更多,直到有个函数图要绘制,想起了它.结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘制. 通过以下两个步骤,就可以进行数学函 ...

  4. 用python画一个简单卡通人物_Python绘制可爱的卡通人物 | 【turtle使用】-Go语言中文社区...

    微信公众号:AI算法与图像处理如果你觉得对你有帮助,欢迎关注.转发以及点赞哦-( ̄▽ ̄-)~ Turtle库 简介 什么是Turtle 首先,turtle库是一个点线面的简单图像库,能够完成一些比较简 ...

  5. Python知道cos值求角度_Python——画一棵漂亮的樱花树

    最近用Python(大多是turtle库)绘制的樱花树有点火,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 (一) 动态生成樱花 效 ...

  6. python根据经纬度画热力图_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  7. python热力图背景_python 绘制场景热力图的示例

    我们在做诸如人群密集度等可视化的时候,可能会考虑使用热力图,在Python中能很方便地绘制热力图. 下面以识别图片中的行人,并绘制热力图为例进行讲解. 步骤1:首先识别图像中的人,得到bounding ...

  8. python画苹果标志图片_替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标...

    原标题:替换/绘制/分享:让所有 App 拥有 macOS 11 Big Sur 风格的图标 前言 Hello 各位不大不小的伙伴们,大家好~ 我是@旅客君.北京时间 2020 年 06 月 23 日 ...

  9. python分析数据走势图_python绘制趋势图的示例

    import matplotlib.pyplot as plt #plt用于显示图片 import matplotlib.image as mping #mping用于读取图片 import date ...

  10. 如何用python画出一般函数图_python如何画函数图像

    通过图像可以直观地学习函数变化.分布等规律,在学习函数.概率分布等方面效果显著.下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像. 下面我们来实现一个简单的函数: 首先,调用m ...

最新文章

  1. Python入门100题 | 第056题
  2. 解决服务器连接错误Host ‘XXX’ is not allowed to connect to this MySQL server
  3. TCP/IP 协议栈及 OSI 参考模型详解
  4. 前端学习(1846)vue之电商管理系统电商项目基本概述
  5. linux open dev/tty0 receive_buf,书写基于内核的linux键盘纪录器(p9-0e)(3)
  6. java 金数据推送数据_基于JAVA的黄金数据接口调用代码实例
  7. C++11 Lambda表达式
  8. 流量控制Sentinel
  9. sql 执行 delete 的时候,结合子查询 exists ,怎样支持别名呢?
  10. odis工程师使用教程_大众奥迪工程师软件ODIS-E车型代码说明大全完整版
  11. 西门子step7安装注册表删除_如何完全删除step 7
  12. HackerRank笔记 - SQL Server
  13. Android原生获取经纬度位置信息
  14. Java发送mail报错“java.util.ServiceConfigurationError: com.sun.mail.imap.IMAPProvider not a subtype”
  15. python机器学习初探
  16. 【Kafka】Kafka为什么快?
  17. text-align 和 align的区别
  18. JAVA 时间戳与Date类型的相互转换、格式化日期、字符串日期转Date
  19. Appnium--APP自动化测试工具
  20. 向表中指定的几个字段添加数据

热门文章

  1. 添加SAP_ALL权限
  2. ABP框架系列之四十九:(Startup-Configuration-启动配置)
  3. win7删除桌面快捷方式图片的小箭头
  4. 针对Web系统常用的功能测试方法浅析
  5. SQL SERVER 2005 使用订阅发布同步数据库
  6. Rabin-Karp算法详解和实现(python)
  7. 【numpy】数组增加一维(升维)小结
  8. Error : Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so
  9. GeoServer的安装与数据服务发布
  10. 【ArcGIS|空间分析|网络分析】5 计算服务区和创建 OD 成本矩阵