【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()显示图形。  


目录
打赏
0
0
0
0
20
分享
相关文章
|
22天前
|
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
78 33
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
51 10
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
103 8
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
在数据科学领域,数据可视化是连接数据与洞察的桥梁,能让复杂的关系变得直观。本文通过实战案例,介绍Python数据分析师必备的Matplotlib与Seaborn两大可视化工具。首先,通过Matplotlib绘制基本折线图;接着,使用Seaborn绘制统计分布图;最后,结合两者在同一图表中展示数据分布与趋势,帮助你提升数据可视化技能,更好地讲述数据故事。
93 1
揭秘!Matplotlib与Seaborn联手,如何让Python数据分析结果一目了然,惊艳全场?
在数据驱动时代,高效直观地展示分析结果至关重要。Python中的Matplotlib与Seaborn是两大可视化工具,结合使用可生成美观且具洞察力的图表。本文通过分析某电商平台的商品销量数据集,展示了如何利用这两个库揭示商品类别与月份间的销售关系及价格对销量的影响。首先使用Matplotlib绘制月份销量分布直方图,再借助Seaborn的箱线图进一步探索不同类别和价格区间下的销量稳定性。
93 10
Python中的数据可视化:使用Matplotlib绘制图表
【9月更文挑战第11天】在这篇文章中,我们将探索如何使用Python的Matplotlib库来创建各种数据可视化。我们将从基本的折线图开始,然后逐步介绍如何添加更多的功能和样式,以使您的图表更具吸引力和信息量。无论您是数据科学家、分析师还是任何需要将数据转化为视觉形式的专业人士,这篇文章都将为您提供一个坚实的起点。让我们一起潜入数据的海洋,用视觉的力量揭示其背后的故事。
84 17
使用Python进行数据可视化:探索Matplotlib和Seaborn库
【9月更文挑战第19天】在数据科学领域,将复杂的数据集转换成直观、易懂的图形是一项基本而关键的技能。本文旨在通过Python编程语言介绍两个强大的数据可视化库——Matplotlib和Seaborn,以及它们如何帮助数据分析师和研究人员揭示数据背后的故事。我们将从基础概念讲起,逐步深入到高级技巧,确保无论读者的背景如何,都能获得必要的知识和启发,以在自己的项目中实现有效的数据可视化。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等