python画图|hist()函数深层体验

【1】引言

前述学习已经掌握hist()函数的基本运用技巧,可通过下述链接直达:

python画图|hist()函数画直方图初探-CSDN博客

 python画图|hist()函数画直方图进阶-CSDN博客

我们已经理解hist()函数本质上画的是概率分布图,相关知识属于数理统计范畴,日常运用较多。为进一步实现运用自如,我们有必要继续探索。

【2】官网教程

官网实际上进一步给出了教程,点击下方链接直达:

https://matplotlib.org/stable/gallery/statistics/histogram_normalization.html#sphx-glr-gallery-statistics-histogram-normalization-py

这个链接指向的内容比较丰富,我们需要分几次才能学习完,为此我们耐心开始学习。

【3】代码解读

首先对第一个代码示例进行解读。

先引入动画和计算模块:

import matplotlib.pyplot as plt  #引入画图模块
import numpy as np #引入计算模块

然后定义变量:

rng = np.random.default_rng(19680801) #定义数据发生器,方便定义array数组xdata = np.array([1.2, 2.3, 3.3, 3.1, 1.7, 3.4, 2.1, 1.25, 1.3]) #定义自变量
xbins = np.array([1, 2, 3, 5]) #定义画图区间

之后定义了一个画图风格(这个定义可以随时灵活设置):

style = {'facecolor': 'none', 'edgecolor': 'C0', 'linewidth': 3} #定义画图风格,

之后定义画图并且画了两种图:

fig, ax = plt.subplots() #定义要画图
ax.hist(xdata, bins=xbins, **style) #画hist()图,画图的概率对象是xdata,直方图的边缘从xbins数组中取值,画图风格调用前述定义的style# plot the xdata locations on the x axis:
ax.plot(xdata, 0*xdata, 'd') #用plot来画自变量xdata以增强对比

最后输出图形:

ax.set_ylabel('Number per bin') #设置Y轴标签
ax.set_xlabel('x bins (dx=1.0)') #设置X轴标签
plt.show() #输出图形

运行代码后的图形为:

图1

此时的完整代码为:

import matplotlib.pyplot as plt  #引入画图模块
import numpy as np #引入计算模块rng = np.random.default_rng(19680801) #定义数据发生器,方便定义array数组xdata = np.array([1.2, 2.3, 3.3, 3.1, 1.7, 3.4, 2.1, 1.25, 1.3]) #定义自变量
xbins = np.array([1, 2, 3, 5]) #定义画图区间# changing the style of the histogram bars just to make it
# very clear where the boundaries of the bins are:
style = {'facecolor': 'none', 'edgecolor': 'C0', 'linewidth': 3} #定义画图风格,fig, ax = plt.subplots() #定义要画图
ax.hist(xdata, bins=xbins, **style) #画hist()图,画图的概率对象是xdata,直方图的边缘从xbins数组中取值,画图风格调用前述定义的style# plot the xdata locations on the x axis:
ax.plot(xdata, 0*xdata, 'd') #用plot来画自变量xdata以增强对比
ax.set_ylabel('Number per bin') #设置Y轴标签
ax.set_xlabel('x bins (dx=1.0)') #设置X轴标签
plt.show() #输出图形

【4】代码修改

经过观察发现,区间[2,3]之间的数据较少,代码概率相对较低,为此增加一些自变量数据:

xdata = np.array([1.2, 2.3, 3.3, 3.1, 1.7, 3.4, 2.1, 1.25, 1.3,2.3,2.6,2.8]) #定义自变量
xbins = np.array([1, 2, 3, 5]) #定义画图区间 

 运行代码后的输出图形为:

图2

显然,中间部分[2,3]区间内的数据增占比大了。

进一步观察也会发现,直方图的高度实际上是该区间内出现数据的个数。

为此,我们继续尝试改写代码,让输出结果变成概率密度。

【5】概率密度density

我们尝试重新书写hist()函数,让density参数发挥作用:

ax.hist(xdata, bins=xbins, **style,density=True)

此时运行代码的输出结果为:

图3

图3输出结果已经是概率密度的形式。

【6】总结

学习了hist()函数的高阶运用技巧,理解了density参数具有输出概率密度的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何提升论文写作能力?

很多同学刚开始都不知道如何写作学术论文,这个也很正常,否则要导师来做什么。而且写作是需要练习的,等你写了5篇以上的论文,你就有感觉了。其次,你们感觉论文写作不知道从何下手还有个重要原因是缺少指导,最近接触了几…

配置管理,雪崩问题分析,sentinel的使用

目录 配置管理一:什么是配置管理二:配置共享三:配置热更新 雪崩问题一:原因分析二:解决方案 Sentinel一:快速入门二:请求限流三:线程隔离四:fallback五:服务熔…

算法练习:904. 水果成篮

题目链接:904. 水果成篮。 题目意思就是可以选取两个种类的水果不能超过两个种类,该种类个数没有限制, 但是一旦超过两个种类的水果就要停止计数。 示例中数组编号就是就是种类,就是不能出现三个不同编号的数。 1.暴力解法&…

邮件营销模板定制服务:满足个性营销需求!

邮件营销模板创建步骤?外贸营销邮件范文模板有哪些? 为了在众多邮件中脱颖而出,企业需要定制化的邮件营销模板,以更好地传达品牌信息,提升客户参与度。MailBing将探讨邮件营销模板定制服务的重要性,并介绍…

unity 镜面 反射

URP 镜面 资源绑定 下载 namespace UnityEngine.Rendering.Universal { [ExecuteInEditMode]public class PlanarURP : MonoBehaviour{public bool VR false;public int ReflectionTexResolution 512;public float Offset 0.0f;[Range(0, 1)]public float Reflecti…

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的另一种方法

目录 一、工程目的 1、目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、不以#开头,但以;结束,长度不限 3、以#开头,不以;结束,也不包含;,长…

leetcode 2043.简易银行系统

1.题目要求: 示例: 输入: ["Bank", "withdraw", "transfer", "deposit", "transfer", "withdraw"] [[[10, 100, 20, 50, 30]], [3, 10], [5, 1, 20], [5, 20], [3, 4, 15], [10, 50]] 输出&#xff…

软件技术求职简历「优选篇」

【#软件技术简历#】一份精心撰写的简历是增加获得心仪职位的机会。那么,如何才能写出一份既全面又吸引人的软件技术简历呢?以下是幻主简历整理的软件技术简历「优选篇」,欢迎大家阅读收藏! 软件技术简历范文: 求职意向…

GESP4级考试语法知识(算法概论(三))

爱因斯坦的阶梯代码&#xff1a; //算法1-12 #include<iostream> using namespace std; int main() {int n1; //n为所设的阶梯数while(!((n%21)&&(n%32)&&(n%54)&&(n%65)&&(n%70)))n; //判别是否满足一组同余式cout<<n<…

Perforce《2024游戏技术现状报告》Part2:游戏引擎、版本控制、IDE及项目管理等多种开发工具的应用分析

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注&#xff0c;正在改变着组织进行数字创作的方式。 近期&#xff0c;Perforce发布了《2024游戏技术现状报告》&#xff0c;通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

美国历任总统特征数据-多个字段(1789-2024年)

数据简介&#xff1a;美国历任总统数据集是一个涵盖了从美国建国以来所有总统的详细信息的综合性数据集。该数据集不仅包含了每位总统的基本信息&#xff08;如姓名、任期、党派等&#xff09;&#xff0c;还涵盖了他们在任期间的重要政策、经济指标、国内外事件等关键数据。通…

视频QoE测量学习笔记(二)

A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP论文学习笔记 自适应比特率&#xff08;ABH或ABS&#xff09; 是一种旨在通过 HTTP 网络有效地流式传输文件的技术。向用户的视频播放器提供多个相同内容、不同大小文件的文件&#xff0c;然后客户端选…

HTML 基础标签——文本内容标签 <ul>、<ol>、<blockquote> 、<code> 等标签的用法详解

文章目录 1. 标题标签2. 段落标签3. 文本格式化标签4. 列表标签4.1 无序列表 `<ul>`4.2 有序列表 `<ol>`5. 引用标签5.1 块引用 `<blockquote>`5.2 行内引用 `<q>`5.3 作品引用 `<cite>`6. 代码和预格式文本标签6.1 代码标签 `<code>`6.2 …

论文阅读笔记-Get To The Point: Summarization with Pointer-Generator Networks

前言 最近看2021ACL的文章&#xff0c;碰到了Copying Mechanism和Coverage mechanism两种技巧&#xff0c;甚是感兴趣的翻阅了原文进行阅读&#xff0c;Copying Mechanism的模型CopyNet已经进行阅读并写了阅读笔记&#xff0c;如下&#xff1a; 论文阅读笔记&#xff1a;Copyi…

PDF多功能工具箱 PDF Shaper v14.6

如今对PDF处理的软件很多都是只是单一的功能。PDF Shaper给你完全不同的体验&#xff0c;因为PDF Shaper是一款免费的PDF工具集合的软件。有了PDF Shaper&#xff0c;你以后再也不用下载其他处理PDF的软件了。PDF Shaper的功能有&#xff1a;合并&#xff0c;分割&#xff0c;加…

【算法】(Python)贪心算法

贪心算法&#xff1a; 又称贪婪算法&#xff0c;greedy algorithm。贪心地追求局部最优解&#xff0c;即每一步当前状态下最优选择。试图通过各局部最优解达到最终全局最优解。但不从整体最优上考虑&#xff0c;不一定全局最优解。步骤&#xff1a;从初始状态拆分成一步一步的…

vue常见题型(1-10)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 2.2双向绑定的原理是什么vue框架采用的是数据双向绑定的方式&#xff0c;由三个重要部分构成2.2.1.ViewModel2.2.2 双向绑定2.2.3.1.编译Compile2.2.3.2.依赖收集 3…

论文阅读:人工智能赋能源网荷储协同互动的应用及展望

论文阅读&#xff1a;人工智能赋能源网荷储协同互动的应用及展望 [1]王继业.人工智能赋能源网荷储协同互动的应用及展望[J].中国电机工程学报,2022,42(21):7667-7682.DOI:10.13334/j.0258-8013.pcsee.220538. 文章目录 论文阅读&#xff1a;人工智能赋能源网荷储协同互动的应用…

虚幻引擎5(UE5)学习教程

虚幻引擎5&#xff08;UE5&#xff09;学习教程 引言 虚幻引擎5&#xff08;Unreal Engine 5&#xff0c;简称UE5&#xff09;是Epic Games开发的一款强大的游戏引擎&#xff0c;广泛应用于游戏开发、影视制作、建筑可视化等多个领域。UE5引入了许多先进的技术&#xff0c;如…

Golang | Leetcode Golang题解之第543题二叉树的直径

题目&#xff1a; 题解&#xff1a; func diameterOfBinaryTree(root *TreeNode) int {var (dfs func(node *TreeNode) int // node节点深度ans int)dfs func(node *TreeNode) int {//边界if node nil {return -1}//求左右子树深度leftDepth : dfs(node.Left)rightDepth : d…