【数据分析之道-Matplotlib(七)】Matplotlib直方图

news2024/11/23 7:21:48

在这里插入图片描述

文章目录

  • 专栏导读
  • 1、hist()基本语法
  • 2、使用 hist() 函数绘制多个数据组的直方图
  • 3、修改直方图的颜色及边框颜色
  • 4、六一儿童节为主题,使用直方图进行可视化

专栏导读

✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪

1、hist()基本语法

hist()函数是Matplotlib库中用于绘制直方图的函数。它的语法如下:

plt.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, normed=None, **kwargs)

下面是一些常用参数的解释:

  • x: 必需参数,用于绘制直方图的数据。
  • bins: 可选参数,指定直方图的柱子数量或柱子的边界值。默认值为10。
  • range: 可选参数,指定直方图的取值范围。默认值为数据的最小值和最大值。
  • density: 可选参数,指定是否将直方图的高度归一化为概率密度。默认值为False。
  • histtype: 可选参数,指定直方图的类型。可以是’bar’(默认值),‘barstacked’,‘step’,'stepfilled’等。
  • color: 可选参数,指定直方图的颜色。
  • label: 可选参数,指定直方图的标签,用于图例显示。
  • align: 可选参数,指定柱子的对齐方式。可以是’left’,‘mid’(默认值),‘right’。
  • orientation: 可选参数,指定直方图的方向。可以是’vertical’(默认值),‘horizontal’。
  • rwidth: 可选参数,指定柱子的宽度,取值范围为[0, 1]。默认值为None,表示自适应宽度。
  • 其他参数:还可以传递其他关键字参数,用于进一步自定义直方图的样式和属性。

实例演示hist()制作简单的直方图:

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
data = np.random.randn(1000)

# 绘制直方图
plt.hist(data)

# 添加标签和标题
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')

# 显示图表
plt.show()

在这里插入图片描述

2、使用 hist() 函数绘制多个数据组的直方图

当使用hist()函数绘制多个数据组的直方图时,可以在同一图表中显示这些直方图,并进行比较。
下面是一个示例,演示如何使用hist()函数绘制多个数据组的直方图,并进行比较:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data1 = np.random.normal(0, 1, 1000)
data2 = np.random.normal(2, 1, 800)
data3 = np.random.normal(-2, 1, 1200)

# 绘制直方图
plt.hist(data1, bins=30, alpha=0.5, label='Data 1')
plt.hist(data2, bins=30, alpha=0.5, label='Data 2')
plt.hist(data3, bins=30, alpha=0.5, label='Data 3')

# 添加标签和标题
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram Comparison')

# 添加图例
plt.legend()

# 显示图表
plt.show()

在这里插入图片描述

在这个例子中,我们生成了三组随机数据data1、data2和data3。然后,我们分别使用plt.hist()函数绘制了这三组数据的直方图,并使用bins参数设置了直方图的柱子数量,alpha参数设置了柱子的透明度,label参数设置了每组数据的标签。
接下来,我们添加了x轴和y轴的标签,以及一个标题。然后,使用plt.legend()函数添加了图例,以便区分不同的数据组。
最后,我们调用plt.show()函数显示了绘制好的直方图。

3、修改直方图的颜色及边框颜色

要修改直方图的颜色和边框颜色,可以使用color参数和edgecolor参数来设置。
下面是一个示例,演示如何修改直方图的颜色和边框颜色:

import matplotlib.pyplot as plt
import numpy as np

# 生成随机数据
np.random.seed(0)
data = np.random.randn(1000)

# 绘制直方图
plt.hist(data, bins=30, color='skyblue', edgecolor='black')

# 添加标签和标题
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram')

# 显示图表
plt.show()

在这里插入图片描述

在这个例子中,我们生成了随机数据data。然后,我们使用plt.hist()函数绘制了直方图,并通过color参数将柱子的颜色设置为天蓝色,通过edgecolor参数将柱子的边框颜色设置为黑色。
你可以根据需要修改color参数和edgecolor参数的值,选择适合的颜色来自定义直方图的外观。
运行代码后,你将看到绘制好的直方图,柱子的颜色为天蓝色,边框颜色为黑色。

4、六一儿童节为主题,使用直方图进行可视化

当以儿童节为主题进行可视化时,可以使用直方图展示与儿童节相关的数据。以下是一个示例,演示如何使用直方图可视化儿童节礼物的数量分布:

import matplotlib.pyplot as plt

# 儿童节礼物的数量数据
gifts = ['Dolls', 'Cars', 'Balloons', 'Candies', 'Books']
quantity = [45, 60, 30, 80, 50]

# 绘制直方图
plt.bar(gifts, quantity, color='skyblue')

# 添加标签和标题
plt.xlabel('Gifts')
plt.ylabel('Quantity')
plt.title('Children\'s Day Gifts Distribution')

# 显示图表
plt.show()

在这里插入图片描述

在这个示例中,我们定义了儿童节礼物的种类(gifts)和每种礼物的数量(quantity)。然后,我们使用plt.bar()函数绘制了儿童节礼物的直方图,将礼物作为x轴,数量作为y轴,并使用天蓝色作为柱子的颜色。
最后,我们添加了标签和标题,以便更好地说明图表的含义。


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗

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

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

相关文章

POI报表的高级应用

POI报表的高级应用 掌握基于模板打印的POI报表导出理解自定义工具类的执行流程 熟练使用SXSSFWorkbook完成百万数据报表打印理解基于事件驱动的POI报表导入 模板打印 概述 自定义生成Excel报表文件还是有很多不尽如意的地方,特别是针对复杂报表头,单元格…

我们世界中的10个算法

下面的图表展示了我们日常生活中最常用的算法。它们被应用在互联网搜索引擎、社交网络、WiFi、手机甚至卫星等各个领域。 1.排序算法 排序算法用于将一组数据按照特定的顺序进行排列。它们被广泛应用于各种场景,如搜索引擎中的搜索结果排序、数据分析中的数据整理和…

转转前端周刊第六十八期

转转前端周刊 本刊意在将整理业界精华文章给大家,期望大家一起打开视野 如果你有发现一些精华文章想和更多人分享,可以点击我们的公众号名称,将文章链接和你的解读文案发给我们!我们会对内容进行筛选和审核,保留你的推…

基于TensorFlow Object Detection API实现RetinaNet目标检测网络(附源码)

文章目录 一、RetinaNet简介1. Backbone网络2. FPN网络 二、RetinaNet实现1. tf.train.CheckPoint简介2. RetinaNet的TensorFlow源码 一、RetinaNet简介 RetinaNet是作者Tsung-Yi Lin和Kaiming He于2018年发表的论文Focal Loss for Dense Object Detection中提出的网络。Retina…

运维小白必学篇之基础篇第十六集:DNS架构FTP实验

DNS架构FTP实验 目录 DNS架构FTP实验 服务端 客户端 服务端 在ftp架构了安装dns域名服务 yum -y install bind 配置主配置文件 vim /etc/named.conf listen-on port 53 { 192.168.50.1; }; allow-query { 192.168.50.0/24; }; 配置区域文件 vim /etc/named.rfc1912.zones…

深聊丨“紫东太初”大模型背后有哪些值得细读的论文(一)

原创:谭婧 没有人想等待,没有人想落伍。 新鲜论文时兴火热,成为大模型发展迅猛的标志之一,人们用“刷论文”这个游荡意味的动词替代另一个颇为严肃的动作,“读论文”。 论文被当作“教材”和“新知识”,在a…

矢量网络分析仪RS罗德与施瓦ZNB8 9KHZ至8.5GHZ德国二手

Rohde & Schwarz ZNB8网络分析仪,8.5 GHz,2 或 4 端口 ​罗德与施瓦茨 ZNB8 Rohde & Schwarz ZNB8 矢量网络分析仪具有高达 140 dB(10 Hz IF 带宽)的宽动态范围、低于 0.004 dB RMS(10 kHz IF 带宽&#xff…

React--Component组件浅析

目录 一 前言二 什么是React组件?三 二种不同 React 组件1 class类组件2 函数组件 四 组件通信方式五 组件的强化方式六 总结 一 前言 在 React 世界里,一切皆组件,我们写的 React 项目全部起源于组件。组件可以分为两类,一类是类…

驱动开发:内核扫描SSDT挂钩状态

在笔者上一篇文章《驱动开发:内核实现SSDT挂钩与摘钩》中介绍了如何对SSDT函数进行Hook挂钩与摘钩的,本章将继续实现一个新功能,如何检测SSDT函数是否挂钩,要实现检测挂钩状态有两种方式,第一种方式则是类似于《驱动开…

【Unity-UGUI控件全面解析】| Layout自动布局组件详解

🎬【Unity-UGUI控件全面解析】| Layout自动布局组件详解一、组件介绍二、组件属性面板2.1 布局元素 (Layout Element)2.2 水平布局组 (Horizontal Layout Group)2.3 垂直布局组 (Vertical Layout Group)2.4 网格布局组 (Grid Layout Group)三、代码操作组件四、组件常用方法示…

把 AI 装进即时通讯,会发生什么?

今年以来,AIGC 技术以“天”为单位快速进化,刷足了存在感。科技公司迅速将 AI 嵌入自家的产品中,追逐 AI 带来的生产力变革,解决日益复杂的需求。从文学到音乐,从绘画到编程,无一领域不受其影响。 在这些领…

网络编程(1)

获取本网络信息相关接口 接口说明: QHostInfo类为主机信息,为主机名查找提供静态函数 QHostAddress类为主机地址类,管理IPV4或IPV6地址信息。 QNetworkInterface类为网络接口类,提供主机IP地址和网络接口的列表。 QNetworkAd…

关于人生,爱情和事业,谈谈我的人类史观(视频在最后)

前几天在知乎上回答了一个问题,没想到一下子好像火了,评论超过五百,也有各种质疑,其中有一个人的问题我觉得值得探讨,因为在回答中,我写下了一段也许值得留存的文字。 视频里面有更多的内容的扩展&#xff…

2023智源大会议程公开丨具身智能与强化学习论坛

6月9日,2023北京智源大会,将邀请这一领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗?与会知名嘉宾包括,图灵奖得主Yann LeCun、图灵奖得主Geoffrey Hinton、OpenAI创…

chatgpt赋能python:Python:填写网页内容的SEO最佳实践

Python:填写网页内容的SEO最佳实践 在今天的数字领域中,SEO(搜索引擎优化)已经成为成功在线业务的必要元素。其中,内容是SEO的核心部分。网页内容不仅仅是用户体验的关键,还是吸引搜索引擎注意的因素之一。…

Java 进阶 -- 集合(一)

本节描述Java集合框架。在这里,您将了解什么是集合,以及它们如何使您的工作更轻松,程序更好。您将了解组成Java Collections Framework的核心元素——接口、实现、聚合操作和算法。 介绍告诉您集合是什么,以及它们如何使您的工作…

【Python】Python系列教程-- Python3 函数(二十一)

文章目录 前言定义一个函数语法实例函数调用参数传递可更改(mutable)与不可更改(immutable)对象python 传不可变对象实例传可变对象实例参数必需参数关键字参数默认参数不定长参数匿名函数return 语句强制位置参数 前言 往期回顾: Python系列教程–Python3介绍&am…

第3章“程序的机器级表示”:数组分配与访问

文章目录 概述3.8.1 基本原则3.8.2 指针运算3.8.3 数组与循环3.8.4 嵌套数组3.8.4 固定大小的数组3.8.5 动态分配的数组 概述 C 中数组是一种将标量型数据聚集成更大数据类型的方式。C用来实现数组的方式非常简单,因此很容易翻译成机器代码。C的一个不同寻常的特点…

第十届蓝桥杯c++b组国赛题解(还在持续更新中...)

试题A&#xff1a;平方序列 解题思路&#xff1a; 直接枚举一遍x的取值&#xff0c;然后按照题目给定的式子算出y&#xff0c;每次取xy的最小值即可 答案为7020 代码实现&#xff1a; #include<iostream> #include<algorithm> #include<cmath> using namespa…

栈帧之操作数栈(Operand Stack)和动态链接(Dynamic Linking)解读

操作数栈 概念 每一个独立的栈帧除了包含局部变量表以外&#xff0c;还包含一个后进先出&#xff08;Last-In-First-Out&#xff09;的 操作数栈&#xff0c;也可以称之为表达式栈&#xff08;Expression Stack&#xff09; 操作数栈&#xff0c;在方法执行过程中&#xff0c…