Python怎么绘制百分比堆叠柱状图并填充图案

发布时间:2022-04-20 17:15:11 作者:zzz
来源:亿速云 阅读:577

Python怎么绘制百分比堆叠柱状图并填充图案

在数据可视化中,百分比堆叠柱状图是一种常用的图表类型,用于展示不同类别在整体中的占比情况。通过填充图案,可以进一步增强图表的可读性和美观性。本文将介绍如何使用Python中的Matplotlib库绘制百分比堆叠柱状图,并为柱状图填充图案。

1. 安装Matplotlib库

首先,确保你已经安装了Matplotlib库。如果没有安装,可以使用以下命令进行安装:

pip install matplotlib

2. 导入必要的库

在开始绘制图表之前,我们需要导入Matplotlib库以及其他一些必要的库:

import matplotlib.pyplot as plt
import numpy as np

3. 准备数据

假设我们有以下数据,表示三个类别(A、B、C)在四个时间段(Q1、Q2、Q3、Q4)中的占比:

categories = ['Q1', 'Q2', 'Q3', 'Q4']
A = [20, 30, 40, 50]
B = [30, 40, 30, 20]
C = [50, 30, 30, 30]

为了绘制百分比堆叠柱状图,我们需要将数据转换为百分比形式:

A_percent = [a / (a + b + c) * 100 for a, b, c in zip(A, B, C)]
B_percent = [b / (a + b + c) * 100 for a, b, c in zip(A, B, C)]
C_percent = [c / (a + b + c) * 100 for a, b, c in zip(A, B, C)]

4. 绘制百分比堆叠柱状图

接下来,我们使用Matplotlib绘制百分比堆叠柱状图:

fig, ax = plt.subplots()

ax.bar(categories, A_percent, label='A')
ax.bar(categories, B_percent, bottom=A_percent, label='B')
ax.bar(categories, C_percent, bottom=[a + b for a, b in zip(A_percent, B_percent)], label='C')

ax.set_ylabel('Percentage')
ax.set_title('Percentage Stacked Bar Chart')
ax.legend()

plt.show()

5. 填充图案

为了增强图表的可读性,我们可以为每个类别填充不同的图案。Matplotlib提供了多种填充图案,可以通过hatch参数来指定:

fig, ax = plt.subplots()

ax.bar(categories, A_percent, label='A', hatch='/')
ax.bar(categories, B_percent, bottom=A_percent, label='B', hatch='\\')
ax.bar(categories, C_percent, bottom=[a + b for a, b in zip(A_percent, B_percent)], label='C', hatch='|')

ax.set_ylabel('Percentage')
ax.set_title('Percentage Stacked Bar Chart with Patterns')
ax.legend()

plt.show()

6. 完整代码

以下是完整的代码示例:

import matplotlib.pyplot as plt
import numpy as np

# 数据准备
categories = ['Q1', 'Q2', 'Q3', 'Q4']
A = [20, 30, 40, 50]
B = [30, 40, 30, 20]
C = [50, 30, 30, 30]

# 转换为百分比
A_percent = [a / (a + b + c) * 100 for a, b, c in zip(A, B, C)]
B_percent = [b / (a + b + c) * 100 for a, b, c in zip(A, B, C)]
C_percent = [c / (a + b + c) * 100 for a, b, c in zip(A, B, C)]

# 绘制百分比堆叠柱状图并填充图案
fig, ax = plt.subplots()

ax.bar(categories, A_percent, label='A', hatch='/')
ax.bar(categories, B_percent, bottom=A_percent, label='B', hatch='\\')
ax.bar(categories, C_percent, bottom=[a + b for a, b in zip(A_percent, B_percent)], label='C', hatch='|')

ax.set_ylabel('Percentage')
ax.set_title('Percentage Stacked Bar Chart with Patterns')
ax.legend()

plt.show()

7. 总结

通过本文的介绍,我们学习了如何使用Python中的Matplotlib库绘制百分比堆叠柱状图,并为柱状图填充图案。百分比堆叠柱状图能够清晰地展示不同类别在整体中的占比情况,而填充图案则进一步增强了图表的可读性和美观性。希望本文对你有所帮助!

推荐阅读:
  1. canvas绘制正文形并填充-3
  2. canvas绘制正文形并填充-2

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:C#正则表达式的知识点有哪些

下一篇:C++函数重载怎么定义使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》