📜  MatPlotLib 中的堆积百分比条形图(1)

📅  最后修改于: 2023-12-03 15:17:35.281000             🧑  作者: Mango

Matplotlib中的堆叠百分比条形图

堆叠百分比条形图(Stacked Percentage Bar Chart)是一种常见的数据可视化方式,可以用于展示多个类别的数据在总量中的占比情况。

Matplotlib是Python中常用的数据可视化库,它提供了多种绘制堆叠百分比条形图的函数。

基本用法

使用Matplotlib绘制堆叠百分比条形图,需要先准备好数据和类别。下面是一个简单的例子:

import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D', 'E']
data = [[0.2, 0.3, 0.1, 0.15, 0.25],
        [0.25, 0.2, 0.15, 0.1, 0.3],
        [0.15, 0.25, 0.2, 0.25, 0.15]]

fig, ax = plt.subplots()

ax.bar(categories, data[0], color='r')
ax.bar(categories, data[1], bottom=data[0], color='g')
ax.bar(categories, data[2], bottom=[i + j for i, j in zip(data[0], data[1])], color='b')

plt.show()

上述代码中,categories表示类别,data表示类别中每个数据的占比,三个列表分别表示三个类别的数据。绘制堆叠百分比条形图的代码是通过多次调用ax.bar函数实现的。其中,第一个ax.bar表示绘制第一个类别的数据,第二个ax.bar表示绘制第二个类别的数据,bottom参数表示这些数据的基准值是什么,第三个ax.bar表示绘制第三个类别的数据,bottom参数的计算使用了zip函数和列表推导式。

运行代码,可以得到如下的结果:

基本用法

进阶用法

在实际应用中,堆叠百分比条形图还可以结合其他的Matplotlib特性,实现更加丰富的数据可视化效果。下面是一个进阶用法的例子:

import numpy as np
import matplotlib.pyplot as plt

N = 5
F = [0.2, 0.3, 0.1, 0.15, 0.25]
M = [0.25, 0.2, 0.15, 0.1, 0.3]

ind = np.arange(N)
width = 0.35

fig, ax1 = plt.subplots()

ax2 = ax1.twinx()

ax1.bar(ind, F, width, color='r')
ax1.bar(ind, M, width, bottom=F, color='b')

ax1.set_ylabel('Female')
ax2.set_ylabel('Male')

plt.xticks(ind, ('A', 'B', 'C', 'D', 'E'))

plt.show()

上述代码中,使用了NumPy生成了一些随机数据,绘制堆叠百分比条形图的代码通过调用ax.bar函数实现。值得注意的是,这个例子还使用了双Y轴绘图的特性,让第一个类别的数据使用左侧的Y轴绘制,第二个类别的数据使用右侧的Y轴绘制。

运行代码,可以得到如下的结果:

进阶用法

总结

通过Matplotlib提供的绘制堆叠百分比条形图的函数,我们可以很方便地对数据进行可视化处理。除了基本用法,我们还可以结合其他Matplotlib的特性,实现更加丰富的数据可视化效果,方便地探索数据的内在关系。