【100天精通Python】Day64:Python可视化_Matplotlib绘制误差线图、填充图、堆叠面积图,示例+代码

简介: 【100天精通Python】Day64:Python可视化_Matplotlib绘制误差线图、填充图、堆叠面积图,示例+代码

1 绘制误差线图(errorbar)

       误差线图用于可视化一个或多个数据集的测量值及其相关误差或不确定性。每个数据点可能有不同的误差范围,这些误差可以表示为上下误差条、对称误差、非对称误差等。通常,误差线图用于比较多个实验条件或数据源之间的差异。

(1) 上下误差条(Vertical Error Bars):

  • 上下误差条用于表示每个数据点在垂直方向上的误差范围,通常用于表示数据点的上下浮动范围,这可以是测量误差、标准差等。

(2)对称误差(Symmetric Error):

  • 对称误差表示数据点的误差范围在两个方向上是对称的,通常用于表示标准差或置信区间等。

(3)非对称误差(Asymmetric Error):

  • 非对称误差表示数据点的误差范围在两个方向上不对称,通常用于表示实验测量误差等。

示例:绘制误差线图

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.array([1, 2, 3, 4, 5])
y1 = np.array([2, 3, 5, 4, 6])
y2 = np.array([3, 4, 6, 5, 7])
# 不对称误差范围
y1_lower_err = np.array([0.2, 0.3, 0.1, 0.4, 0.15])
y1_upper_err = np.array([0.1, 0.25, 0.15, 0.3, 0.1])
# 对称误差范围
y2_err = np.array([0.15, 0.2, 0.25, 0.2, 0.18])
# 绘制误差线图
plt.errorbar(x, y1, yerr=[y1_lower_err, y1_upper_err], fmt='o', label='Data 1 (Asymmetric Errors)', capsize=5)
plt.errorbar(x, y2, yerr=y2_err, fmt='s', label='Data 2 (Symmetric Errors)', capsize=5)
# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Error Bar Plot')
# 添加图例
plt.legend()
# 显示图形
plt.grid(True)
plt.show()

运行:

        这段代码用于绘制误差线图,包括不对称误差范围和对称误差范围。其中,x轴表示自变量,y轴表示因变量。

       首先,通过导入matplotlib.pyplot和numpy库准备绘图所需的数据。数据包括x的取值和两个因变量y1和y2的取值。 接下来,通过numpy库创建了不对称误差范围的上限和下限数组(y1_lower_err和y1_upper_err),以及对称误差范围的数组(y2_err)。

       然后,使用plt.errorbar函数分别绘制了两组数据的误差线,其中yerr参数分别传入了不对称和对称误差范围的数组,fmt参数指定了误差线的样式。

       同时,添加了标签和标题用以说明图形的含义,并添加了图例以表示参与比较的数据。 最后,调用plt.grid(True)显示网格线,调用plt.show()显示图形。


2 绘制填充图(fill_between)

       绘制填充图(Fill Between Plot)用于可视化两个数据集之间的区域或曲线下的区域。这通常用于表示数据的不确定性、区间、或者两个数据集之间的差异。

      绘制填充图的关键思想是创建一个包围两个数据集之间区域的闭合形状,并对其进行填充。通常,这两个数据集可以是两条曲线、一条曲线和坐标轴之间的区域、或者两个曲线之间的区域。填充图在数据可视化中常用于突出数据集的差异或不确定性范围。

示例代码

以下是一个示例代码,演示如何使用 Matplotlib 绘制填充图来表示两个数据集之间的区域:

import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建填充图
plt.fill_between(x, y1, y2, color='blue', alpha=0.5, label='Region Between y1 and y2')
# 添加标签和标题
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Fill Between Plot')
# 添加图例
plt.legend()
# 显示图形
plt.grid(True)
plt.show()

运行:

        在这个示例中,我们创建了两个数据集 y1 和 y2,并使用 plt.fill_between() 函数绘制了它们之间的填充区域。

                            参数 x 表示 x 坐标的数据,

       y1 和 y2 分别表示两个数据集的 y 坐标,

       color 指定填充区域的颜色,

       alpha 控制填充区域的透明度,

       label 用于图例的标签。

最后,我们添加了标签、标题、图例,并显示了填充图。

这个示例演示了如何绘制填充图,以突出两个数据集之间的区域,并使数据的不确定性或差异更清晰可见。你可以根据需要自定义填充图的样式、颜色和属性。

2.2 绘制填充线图(Filled Line Plot)

  • 填充线图是通过将线图的下方区域着色来创建的。它用于强调数据的趋势和变化,通常表示数据点与基线之间的关系。
  • 示例代码
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
# 创建填充线图
plt.fill_between(x, y, alpha=0.3)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Filled Line Plot')
plt.show()

在上述示例中,我们使用 plt.fill_between() 函数创建了填充线图,通过填充线下方的区域来突出数据的波动。

2.3 堆叠面积图(Stacked Area Plot)

  • 堆叠面积图用于表示多个数据系列的累积贡献,通常表示不同类别的数据在总体中的比例。
  • 示例代码
import matplotlib.pyplot as plt
import numpy as np
# 准备数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# 创建堆叠面积图
plt.stackplot(x, y1, y2, labels=['Sin', 'Cos'], alpha=0.5)
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.title('Stacked Area Plot')
plt.legend(loc='upper right')
plt.show()

运行:

       在上述示例中,我们使用 plt.stackplot() 函数创建了堆叠面积图,将两个数据系列 y1y2 堆叠在一起,通过填充区域来表示它们的贡献。

2.4 绘制填充直方图(Filled Histogram)

  • 填充直方图是在直方图的每个条形之间填充颜色,以强调不同数据区间的分布。
  • 示例:绘制男性和女性身高分布的比较的填充直方图
import matplotlib.pyplot as plt
import numpy as np
# 生成随机数据,模拟身高分布
np.random.seed(0)
male_heights = np.random.normal(175, 10, 500)
female_heights = np.random.normal(162, 8, 500)
# 创建填充直方图,同时显示男性和女性身高分布
plt.hist(male_heights, bins=30, density=True, alpha=0.5, color='blue', label='Male Heights')
plt.hist(female_heights, bins=30, density=True, alpha=0.5, color='pink', label='Female Heights')
# 添加标签和标题
plt.xlabel('Height (cm)')
plt.ylabel('Frequency')
plt.title('Height Distribution (Male vs. Female)')
plt.legend()
# 显示图形
plt.show()

       这段代码用于生成随机数据,模拟男性和女性的身高分布,并通过填充直方图将两者的身高分布可视化。

       首先,通过导入matplotlib.pyplot和numpy库准备绘图所需的数据。使用numpy库中的random模块生成了500个符合正态分布的男性身高数据和女性身高数据。

       接下来,使用plt.hist函数分别绘制了男性和女性身高的填充直方图。其中,bins参数指定了直方图的箱子数量,density参数设置为True可将频率转换为概率密度,alpha参数设置了填充颜色的透明度,

       color参数分别设置了男性身高直方图的颜色为蓝色,女性身高直方图的颜色为粉色,label参数指定了相应的标签。

       然后,添加了标签和标题用以说明图形的含义,并添加了图例以表示男性和女性身高的区分。

       最后,调用plt.show()显示图形。  


目录
相关文章
|
10天前
|
JSON 监控 API
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
|
16天前
|
Go Python
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
|
16天前
|
数据采集 供应链 API
实战指南:通过1688开放平台API获取商品详情数据(附Python代码及避坑指南)
1688作为国内最大的B2B供应链平台,其API为企业提供合法合规的JSON数据源,直接获取批发价、SKU库存等核心数据。相比爬虫方案,官方API避免了反爬严格、数据缺失和法律风险等问题。企业接入1688商品API需完成资质认证、创建应用、签名机制解析及调用接口四步。应用场景包括智能采购系统、供应商评估模型和跨境选品分析。提供高频问题解决方案及安全合规实践,确保数据安全与合法使用。立即访问1688开放平台,解锁B2B数据宝藏!
|
17天前
|
API 开发工具 Python
【Azure Developer】编写Python SDK代码实现从China Azure中VM Disk中创建磁盘快照Snapshot
本文介绍如何使用Python SDK为中国区微软云(China Azure)中的虚拟机磁盘创建快照。通过Azure Python SDK的Snapshot Class,指定`location`和`creation_data`参数,使用`Copy`选项从现有磁盘创建快照。代码示例展示了如何配置Default Azure Credential,并设置特定于中国区Azure的`base_url`和`credential_scopes`。参考资料包括官方文档和相关API说明。
|
2月前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
87 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
6月前
|
Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
|
6月前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
107 1
|
3月前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
127 8
|
6月前
|
存储 数据可视化 数据挖掘
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
100 10
|
6月前
|
数据可视化 Python
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
100 17