matplotlib

Matplotlib怎么绘制多层次饼图以表示嵌套数据

小亿
99
2024-05-21 11:23:32
栏目: 编程语言

要绘制多层次饼图以表示嵌套数据,首先需要导入Matplotlib库。然后,可以使用Matplotlib的pie函数来绘制基本的饼图,然后使用递归的方法来绘制多层次饼图。

以下是一个示例代码,演示如何用Matplotlib绘制多层次饼图:

import matplotlib.pyplot as plt

# 嵌套数据
data = {
    'A': {
        'A1': 10,
        'A2': 20
    },
    'B': {
        'B1': 15,
        'B2': {
            'B2.1': 5,
            'B2.2': 10
        }
    }
}

def draw_pie(data, parent_label='', explode=0.1, depth=0):
    labels = data.keys()
    sizes = [data[label] if type(data[label]) == int else sum(data[label].values()) for label in labels]
    explode = [explode] * len(labels)
    
    plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', startangle=140)
    plt.axis('equal')
    
    for label in labels:
        if type(data[label]) == dict:
            draw_pie(data[label], parent_label=label, explode=0.1, depth=depth+1)
            
    plt.title(parent_label)

draw_pie(data)
plt.show()

在这个示例中,我们定义了一个名为draw_pie的函数,用来绘制多层次饼图。该函数接受一个嵌套的数据字典作为输入,然后递归地绘制每个层次的饼图。

通过运行这段代码,可以得到一个包含嵌套数据的多层次饼图,每个层次的数据用不同的颜色表示。

0
看了该问题的人还看了