Python实战:绘制直方图的示例代码,数据可视化获取样本分布特征

文章目录

  • 一、初步
  • 二、参数
  • 三、绘图类型
  • 四、多组数据直方图对比
      • Python技术资源分享
        • 1、Python所有方向的学习路线
        • 2、学习软件
        • 3、精品书籍
        • 4、入门学习视频
        • 5、实战案例
        • 6、清华编程大佬出品《漫画看学Python》
        • 7、Python副业兼职与全职路线

一、初步

对于大量样本来说,如果想快速获知其分布特征,最方便的可视化方案就是直方图,即统计落入不同区间中的样本个数。

以正态分布为例

import numpy as np
import matplotlib.pyplot as plt
xs = np.random.normal(0, 1, size=(5000))
fig = plt.figure()
for i,b in enumerate([10, 50, 100, 200],1):ax = fig.add_subplot(2,2,i)plt.hist(xs, bins=b)
plt.show()

其中bins参数用于调控区间个数,出图结果如下
在这里插入图片描述

二、参数

直方图函数的定义如下

hist(x, bins=None, range=None, density=False, weights=None, cumulative=False, bottom=None, histtype='bar', align='mid', orientation='vertical', rwidth=None, log=False, color=None, label=None, stacked=False, *, data=None, **kwargs)

除了x和bins之外,其他参数含义为

  • range 绘图区间,默认将样本所有范围纳入其中
  • density 为True时,纵坐标单位是占比
  • weights 与x个数相同,表示每个值所占权重
  • cumulative 为True时,将采取累加模式
  • bottom y轴起点,有了这个,可以对直方图进行堆叠
  • histtype 绘图类型
  • align 对其方式,可选left, mid, right三种,代表左中右
  • oritentation 绘制方向,可选vertical和horizontal两种
  • rwitdth 数据条宽度
  • log 为True时,开启对数坐标
  • color, label 颜色,标签
  • stacked

三、绘图类型

histtype共有4个选项,分别是bar, barstacked, step以及stepfilled,其中barstacked表示堆叠,下面对另外三种参数进行演示

types = ['bar', 'step', 'stepfilled']
fig = plt.figure()
for i,t in enumerate(types,1):ax = fig.add_subplot(1,3,i)plt.hist(xs, bins=50, histtype=t, rwidth=0.5)
plt.show()

效果如下
在这里插入图片描述

堆叠直方图,就是把多个直方图叠在一起

bins = [10, 30, 100]
ws = [1, 0.7, 0.5]
for b,w in zip(bins, ws):print(b,w)plt.hist(xs, bins=b, density=True, histtype='barstacked', rwidth = w, alpha=w)
plt.show()

效果如下
在这里插入图片描述

四、多组数据直方图对比

直方图中设置了rwidth选项,这意味着可以通过合理安排数据条宽度,以实现多组数据直方图在一个图像中更加

N = 10000
labels = ["norm", "power", "poisson"]
data = np.array([np.random.normal(0, 1, size=N)**2,np.random.power(5, size=N),np.random.uniform(0, 1, size=N)
]).T
plt.hist(data, 50, density=True, range=(0,1), label=labels)
plt.legend()
plt.show()

其中,data为3组统计数据,hist函数会自行规划画布,效果如下
在这里插入图片描述


【最新Python全套从入门到精通学习资源,文末免费领取!】

Python技术资源分享

如果你对Python感兴趣,学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要有一个系统的学习规划。

小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。

如果你是准备学习Python或者正在学习,下面这些你应该能用得上:

1、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

2、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

3、精品书籍

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

4、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

5、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

6、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

7、Python副业兼职与全职路线

在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

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

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

相关文章

systemctl enable docker.service报错“Failed to execute operation: Bad message“

将docker加入到开机自启,报错: 解决: 重新粘贴复制: [Unit] DescriptionDocker Application Container Engine Documentationhttps://docs.docker.com Afternetwork-online.target firewalld.service Wantsnetwork-online.target…

VS c++多文件编译

前言:记录下我这个菜鸡学习的过程,如有错误恳请指出,不胜感激! 1.简单多文件编译调试 文件目录: 编译: -g选项是告诉编译器生成调试信息,这样可以在程序崩溃或出现错误时更容易地进行调试。这…

Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结

Python3.8安装可以参考博文https://janus.blog.csdn.net/article/details/55274849 进行安装即可。 【1】Anaconda 清华的开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载,这里选择的是5.3.1版本。 然后正常安装就可以&am…

华为ensp:交换机接口划分vlan

现在要把 e0/0/1 接口放入vlan1 e0/0/2 接口放入vlan2 e0/0/3 接口放入vlan3 默认所有接口都在vlan1所以 e0/0/0 接口不用动 1.创建vlan 进入系统视图模式 直接输入 vlan 编号 即可创建对应vlan vlan 编号 vlan 2 创建vlan2 vlan 3 创建vlan3 2.将接口进入vlan…

HALSTM32通用定时器+EXTI实现单击/双击/长按功能

HALSTM32通用定时器EXTI实现单击/双击/长按功能 ✨在使用USB功率计的时候,发现上面的一个按键实现多画面功能切换,于是探索了一下是如何实现的,将其实现的基本思路以及综合网上收集的相关实现方法,粗陋的整理了一下,将…

用趋动云GPU部署自己的Stable Diffusion

注:本文内容来自于对DataWhale的开源学习项目——免费GPU线上跑AI项目实践的学习,参见:Docs,引用了多处DataWhale给出的教程。 1.创建项目 1)进入趋动云用户工作台,在当前空间处选择注册时系统自动生成的…

开发知识点-NodeJs-npm/Pnpm/Vite/Yarn包管理器

包管理器 vue-cli-service 不是内部或外部命令,也不是可运行的程序npm 全局变量pnpmPnpm介绍ViteYarn ‘vue-cli-service’ 不是内部或外部命令,也不是可运行的程序 yarn yarn add vue-amap yarn add vue-amap ant-design-vue npm 全局变量 换主机 新…

tomcat下载与使用教程

1. tomcat下载 官网:https://tomcat.apache.org/ 镜像地址:https://mirrors.huaweicloud.com/apache/tomcat/ 1、选择一个版本下载,官网下载速度缓慢,推荐镜像 2、对压缩包进行解压,无需进行安装,解压放…

Verilog 之 initial 模块与always 模块的用法与差异

文章目录 initial语法和用法特点和注意事项用途 always语法和用法特点和注意事项用途 二者差异 initial 在 Verilog 中,initial 块是用来在模拟开始时执行一次性初始化操作的一种建模方式。它通常用于模拟初始条件或进行一次性的初始化设置,而且只会在模…

经典OJ题:奇偶链表

目录 题目: 示例: 解题思路: 方法一:双链表链接法 图例: 代码演示: 解题效果: 方法二:奇偶指针 图例: 代码演示: 题目: 给定单链表…

栈 和 队列

什么是栈? 一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出(LIFO - Last In First Out)的原则。   从数据结构的角度来看&…

使用 pubsub-js 进行消息发布订阅

npm 包地址 github 包地址 pubsub-js 是一个轻量级的 JavaScript 基于主题的消息订阅发布库 ,压缩后小于1b。它具有使用简单、性能高效、支持多平台等优点,可以很好地满足各种需求。 功能特点: 无依赖同步解耦ES3 兼容。pubsub-js 能够在…

基于Quartz实现动态定时任务

生命无罪,健康万岁,我是laity。 我曾七次鄙视自己的灵魂: 第一次,当它本可进取时,却故作谦卑; 第二次,当它在空虚时,用爱欲来填充; 第三次,在困难和容易之…

Flink SQL -- 概述

1、Flink SQL中的动态表和连续查询 1、动态表: 因为Flink是可以做实时的,数据是在不断的变化的,所以动态表指的是Flink中一张实时变换的表,表中会不断的有新的数据。但是这张表并不是真正的物理表。 2、连续查询: 连续…

王道考研--》顺序表课后习题C语言代码实现(冲刺)

考研是许多计算机科学专业学生追求高学历、寻求更好就业前景的途径。在考研过程中,数据结构是一个非常重要的科目,而代码实现题更是其中的难点之一。在这篇文章中,我们将探讨如何通过实现数据结构代码问题来提升考研成绩。无论您是否有编程经…

C++ 常用方法,刷oj必备(持续更新!!!)

输出结果保留小数点后n位(4位) #include<iostream> #include <iomanip> using namespace std;int main(){double s ;cin >> s ;cout<<fixed << setprecision(4) << s ;return 0; } 类型转换 string 转 int #include <iostream> …

ClickHouse主键索引最佳实践

在本文中&#xff0c;我们将深入研究ClickHouse索引。我们将对此进行详细说明和讨论&#xff1a; ClickHouse的索引与传统的关系数据库有何不同ClickHouse是怎样构建和使用主键稀疏索引的ClickHouse索引的最佳实践 您可以选择在自己的机器上执行本文给出的所有Clickhouse SQL…

RabbitMQ集群

RabbitMQ概述 1.RabbiMQ简介 RabbiMQ是⽤Erang开发的&#xff0c;集群⾮常⽅便&#xff0c;因为Erlang天⽣就是⼀⻔分布式语⾔&#xff0c;但其本身并不⽀持负载均衡。支持高并发&#xff0c;支持可扩展。支持AJAX&#xff0c;持久化&#xff0c;用于在分布式系统中存储转发消…

【CocoaPods安装环境和流程以及各种情况】

CocoaPods 环境HomebrewRubyrbenvRubyGems 和 Bundler安装Ruby管理Ruby更新Ruby替换Ruby镜像方式1方式2 CocoaPods安装CocoaPodsCocoaPods使用安装的一些问题单元测试引用问题 参考的链接 环境 Homebrew $ brew --config *可以发现打印有下面一行&#xff1a; Homebrew Ruby: …

《013.Springboot+vue之旅游信息推荐系统》【前后端分离有开发文档】

《013.Springbootvue之旅游信息推荐系统》【前后端分离&有开发文档】 项目简介 [1]本系统涉及到的技术主要如下&#xff1a; 推荐环境配置&#xff1a;idea jdk1.8 maven MySQL 前后端分离; 后台&#xff1a;SpringBootMybatisMySQL; 前台&#xff1a;Vue; [2]功能模块展…