Matplotlib怎么創(chuàng)建具有層次結(jié)構(gòu)的條形圖

小億
83
2024-05-21 11:43:32

在Matplotlib中,創(chuàng)建具有層次結(jié)構(gòu)的條形圖可以通過(guò)使用多個(gè)bar函數(shù)來(lái)實(shí)現(xiàn)。您可以通過(guò)不同的顏色或不同的高度來(lái)區(qū)分不同層次的條形圖。

以下是一個(gè)創(chuàng)建具有層次結(jié)構(gòu)的條形圖的示例代碼:

import matplotlib.pyplot as plt

# 數(shù)據(jù)
data = {
    'A': {'2019': 10, '2020': 15, '2021': 20},
    'B': {'2019': 5, '2020': 10, '2021': 15},
    'C': {'2019': 8, '2020': 12, '2021': 18}
}

years = ['2019', '2020', '2021']
colors = ['red', 'blue', 'green']

# 創(chuàng)建圖表
fig, ax = plt.subplots()

# 遍歷每個(gè)數(shù)據(jù)點(diǎn),并創(chuàng)建條形圖
for i, (label, values) in enumerate(data.items()):
    bottom = None
    for j, year in enumerate(years):
        height = values[year]
        if bottom is not None:
            ax.bar(label, height, bottom=bottom, color=colors[j])
        else:
            ax.bar(label, height, color=colors[j])
        if bottom is None:
            bottom = height
        else:
            bottom += height

# 設(shè)置圖例和標(biāo)簽
ax.legend(years)
ax.set_ylabel('Value')
ax.set_title('Hierarchical Bar Chart')

plt.show()

在這個(gè)示例中,我們首先定義了數(shù)據(jù),其中包含三個(gè)類(lèi)別(A、B和C)和三個(gè)年份(2019、2020和2021)的值。然后,我們遍歷每個(gè)類(lèi)別的數(shù)據(jù),并使用bar函數(shù)創(chuàng)建具有不同顏色和高度的條形圖。最后,我們添加圖例和標(biāo)簽,然后顯示圖表。

您可以根據(jù)自己的數(shù)據(jù)和需求修改代碼來(lái)創(chuàng)建具有不同層次結(jié)構(gòu)的條形圖。

0