如何使用 Python Matplotlib 并排绘制两个直方图?2025 年 1 月 5 日 | 阅读 9 分钟 理解直方图直方图是数学数据分布的图形表示。它们提供了对某个范围内数据值频率或密度的可视化摘要,这些范围通常称为“bins”。直方图广泛用于数据分析和可视化,以探索数据集的基本模式、趋势和特征。 直方图的定义和目的直方图是一种条形图,其中每个条形表示落在特定范围(bin)内的数据值的频率或比例。x 轴通常表示数据集的值范围,分为离散的间隔,而 y 轴表示每个间隔内数据值的频率或密度。 直方图的主要目的是可视化数据分布并识别仅从原始数据中可能不明显或不可见的模式或趋势。直方图允许分析师快速评估数据集的集中趋势、变异性、偏度和形状,从而提供对其特征的宝贵见解。 直方图的关键组成部分
直方图在数据分析中的优势
直方图在数据分析中的局限性
尽管存在这些局限性,直方图仍然是探索性数据分析、假设检验和决策过程中的重要工具,为分析师提供了对数据基本特征的宝贵见解。 开始使用 MatplotlibMatplotlib 是一个强大而灵活的 Python 可视化库。无论您是绘制简单的折线图、复杂散点图,还是直方图,Matplotlib 都提供了您需要将数据栩栩如生的工具。在深入探讨直方图绘制细节之前,让我们先回顾一下 Matplotlib 的基础知识,以确保您具备入门所需的必要知识。 安装和设置 如果您尚未安装 Matplotlib,可以使用 Python 的包管理器 pip 进行安装: 安装完成后,您就可以在 Python 脚本或交互式会话中开始使用 Matplotlib 了。 Matplotlib 图的基础结构核心上,Matplotlib 图由几个组件组成:
pyplot 接口简介Matplotlib 提供了两种主要的绘图接口:pyplot 接口和面向对象的接口。pyplot 接口受 MATLAB 启发,提供了一种简单直观的方法,通过一系列模仿 MATLAB 绘图命令的函数来创建图表。 以下是使用 pyplot 接口创建简单折线图的基本示例: 输出 ![]() 在此示例中,我们导入 matplotlib.pyplot 模块,并使用其 plot() 函数绘制示例数据的折线图。然后,我们使用 xlabel()、ylabel() 和 title() 等其他函数为图表添加标签和标题。最后,我们调用 show() 来显示图表。 生成示例数据在创建和可视化直方图之前,我们需要一些数据来处理。虽然您可以使用自己的数据集,但为了演示目的,生成随机数据通常很有用。在 Python 中,NumPy 库提供了方便的函数来生成具有不同分布的各种随机数据。 示例数据的重要性示例数据是数据分析和可视化的基础。它使我们能够探索和理解数据集的特征,识别模式并做出明智的决策。在处理直方图时,拥有代表潜在总体分布的示例数据对于进行有意义的可视化至关重要。 使用 NumPy 生成随机数据NumPy 提供了许多生成随机数据的函数,包括来自不同分布(如正态(高斯)、均匀和二项分布)的随机数。以下是几个常用函数的简要概述:
让我们生成一些用于绘制直方图的示例数据: 在此示例中,我们使用 np.random.randn(1000) 生成一个包含 1000 个从标准正态分布中抽取的随机数数组。 真实数据源虽然生成随机数据对于学习和实验很有用,但真实数据通常能提供更有价值的见解。您可以从各种来源获取数据集,包括在线存储库、政府机构、研究机构和公共数据计划。Kaggle、UCI 机器学习存储库和 data.gov 等网站提供了各种领域和用途的广泛数据集。 处理真实数据时,在用直方图或其他类型的图表对其进行可视化之前,务必根据需要对数据进行预处理和清理。 基本直方图绘制既然我们对直方图及其关键组成部分有了深入的了解,让我们开始使用 Python 中的 Matplotlib 创建直方图。我们将从基础开始,介绍如何创建基本直方图并自定义其外观。 创建简单的直方图要使用 Matplotlib 创建基本直方图,我们将使用 plt.hist() 函数,该函数会自动根据输入数据计算 bin 边界和频率。这是一个简单的示例: 输出 ![]() 在这个例子中
自定义直方图外观Matplotlib 提供了多种选项来根据您的喜好自定义直方图的外观。您可以修改颜色、透明度、bin 边界等属性。以下是一些常见的自定义选项: 颜色:您可以使用 color 参数指定直方图条形的颜色。 透明度:您可以使用 alpha 参数更改条形的透明度,该参数的值介于 0(完全透明)和 1(完全不透明)之间。 Bin 边界:您可以使用 bins 参数指定自定义 bin 边界,该参数接受一个定义 bin 边界的数组。 直方图类型:Matplotlib 支持各种直方图类型,包括 'bar'、'barstacked'、'step'、'stepfilled' 等。 示例 输出 ![]() 高级直方图绘制技术在本节中,我们将探讨使用 Python 中的 Matplotlib 进行高级直方图绘制技术。我们将涵盖绘制多个直方图、调整 bin 尺寸以及叠加概率密度函数(PDF)以增强可视化效果等主题。 绘制多个直方图 通常,我们可能需要在同一个图表中比较不同数据集的分布。Matplotlib 允许我们在相同的坐标轴上绘制多个直方图,从而轻松可视化和比较不同的数据集。这是一个示例: 输出 ![]() 在此示例中 我们使用 NumPy 的 np.random.randn() 函数创建两组示例数据(data1 和 data2)。 我们使用 plt.hist() 为这两个数据集绘制直方图,为每个直方图指定不同的颜色和透明度级别。 我们添加 x 轴和 y 轴标签,设置图表标题,并添加图例以区分这两个数据集。 最后,我们使用 plt.show() 显示图表。 调整 Bin 尺寸Bin 尺寸的选择会显着影响直方图的外观和解释。Matplotlib 允许我们指定自定义 Bin 尺寸或让其根据数据自动确定 Bin 边界。这是一个调整 Bin 尺寸的示例: 输出 ![]() 在此示例中,我们创建了两个具有不同 Bin 尺寸(bins=20 和 bins=50)的直方图,以可视化 Bin 尺寸对直方图外观的影响。 结论总之,掌握使用 Python Matplotlib 绘制直方图对于有效的数据可视化和分析至关重要。直方图提供了对数据分布的宝贵见解,有助于识别模式和分析趋势。Matplotlib 提供了一个灵活的平台来创建和自定义直方图,从基本图表到绘制多个直方图和叠加概率密度函数等高级技术。通过实践和探索,您可以利用直方图有效地传达见解,并在数据分析工作中推动明智的决策。 |
简介:在本教程中,我们将学习 Python 中的网络编程。Python 在网络编程中起着重要作用。Python 的标准操作系统库支持网络概念,例如网络、数据编码和解码,并且使用 Python 编写网络服务比使用 C++ 更容易……
阅读 6 分钟
集合是非线性、无序的数据结构,这意味着我们无法像列表那样直接使用索引访问项目。但是,有几种方法可以从集合中检索元素。以下是一些示例:检索没有重复值的元素:我们可以遍历集合中的元素……
阅读 3 分钟
简介 在处理数据的领域,Python 是一个出色的工具。凭借其广泛的库和框架,Python 为用户提供了海量的工具来出色地处理数据。编程中的一项广泛活动是将列表呈现为...
阅读 8 分钟
介绍:requests 库是一个广为人知且功能强大的 Python 库,用于简化 HTTP 请求的创建过程。它为发送 HTTP/1.1 请求和处理响应提供了一个易于使用的接口,使其成为 Web 开发人员、数据...的必备工具。
阅读 6 分钟
引言 在当今信息驱动的世界中,有效存储、检索和操作数据的能力对于许多应用程序至关重要。Python 及其广泛的库生态系统提供了强大的工具来处理数据库和 SQL。无论您是构建 Web 应用程序、数据...
阅读9分钟
当今开发平台中的数据库处理需要灵活、易于嵌入且功能丰富的实用程序,以便有效地处理过大的表。使用 FileMaker 数据库进行开发的开发人员会发现 `pyfilemaker2' 是一个不错的解决方案。该库使您可以轻松地使用 FileMaker...
阅读 4 分钟
? Python 以其可读性和简洁性而闻名,但有时,您可能需要编写多行语句来使代码更加有条理且易于理解。在本文中,我们将探讨在 Python 中编写多行语句的各种方法,包括使用反斜杠、括号...
阅读 4 分钟
? 简介 Python 的 Unicode (UTF-8) 读取和写入功能处理以支持多种语言和字符的格式编码的文本。一种适用于许多设备和系统的流行 Unicode 编码标准是 UTF-8。使用 Python 的 open() 方法和...
阅读 4 分钟
为了根据其二进制表示中的 1 的数量对数字进行排序,首先将每个数字转换为其二进制形式。其次,计算二进制表示中 1 的数量。最后,根据此数字对数字进行排序...
阅读 4 分钟
字谜是一种文学手法。在这种手法中,如果两个词中的字母是另一个词重新排列的字母,则这两个词被称为彼此的字谜。因此,两个词的字母列表应该相同。为了...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India