下面的示例演示了在Matplotlib中构建嵌套饼图的两种方法,这种图表通常被称为甜甜圈图表。
构建饼图最直接的方法是使用 pie() 方法,在这种情况下,pie接受与组中的计数相对应的值。我们将首先生成一些伪数据,对应于三个组。在内环中,我们将把每个数字视为属于它自己的组。在外环中,我们将把它们标为原来3个组的成员。甜甜圈形状的效果是通过 wedgeprops 参数设置饼的楔形宽度来实现的。
cmap = plt.get_cmap("tab20c") # matplotlib中颜色

import matplotlib.pyplot as pltimport numpy as npfig, ax = plt.subplots()size = 0.3 # 环厚度vals = np.array([[60., 32.], [37., 40.], [29., 10.]]) # 列表转数组# [[60., 32.], [37., 40.], [29., 10.]] 元素中的值为内层比例,元素中值的和为外层数值cmap = plt.get_cmap("tab20c")outer_colors = cmap(np.arange(3)*4)inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))# 外层的环ax.pie(vals.sum(axis=1), radius=1, colors=outer_colors,wedgeprops=dict(width=size, edgecolor='w'))# 内层的环ax.pie(vals.flatten(), radius=1-size, colors=inner_colors,wedgeprops=dict(width=size, edgecolor='w'))ax.set(aspect="equal", title='Pie plot with `ax.pie`')plt.show()# edgecolor='w' 边界白色# wedgeprops:设置饼图内外边界的属性,如边界线的粗细、颜色等;# aspect="equal" 圆形

