Python 将饼图更改为油炸圈饼图

Python 将饼图更改为油炸圈饼图,python,matplotlib,pie-chart,Python,Matplotlib,Pie Chart,我有以下代码: fig, axs = plt.subplots(2, 4, figsize=(20, 10), subplot_kw={'aspect':'equal'}) colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99'] #explode = (0.05,0.05,0.05,0.05) for i, (groupname, subdf) in enumerate(df_mitigation.groupby('account_name')):

我有以下代码:

fig, axs = plt.subplots(2, 4, figsize=(20, 10), subplot_kw={'aspect':'equal'})
colors = ['#ff9999','#66b3ff','#99ff99','#ffcc99']
#explode = (0.05,0.05,0.05,0.05)

for i, (groupname, subdf) in enumerate(df_mitigation.groupby('account_name')):
    ax = axs[i // 4, i % 4]
    ax.pie(subdf.cnt, colors = colors,labels=subdf.actual_mitigation_action,autopct='%1.1f%%', startangle=90, pctdistance=0.85)
    centre_circle = plt.Circle((0,0),0.70,fc='white')
    fig = plt.gcf()
    fig.gca().add_artist(centre_circle)
    ax.axis('equal')  
    plt.tight_layout()
    ax.set_title(groupname)

但是我还是得到了屏幕截图中的派。

添加
wedgeprops=dict(width=0.5)
作为
ax.pie
的一个选项,并删除添加圆艺术家的代码。效果很好!我该如何引爆它们?我尝试使用explode=(0.05,0.05,0.05,0.05)并将explode=explode添加到ax.pie中,但得到的错误是:ValueError:“explode”的长度必须为“x”,看起来有些饼图只有3段?因此,当您为explode传入4个值时,它会抱怨。您需要确保对于每个饼图,
explode
数组的长度与
subdf.cnt
的长度相同。所以,在你的循环中,试着做
explode=[0.05]*len(subdf.cnt)
或者类似的东西,这对我很有帮助。添加
wedgeprops=dict(width=0.5)
作为
ax.pie
的一个选项,并删除你的代码,添加一个圆艺术家。效果很好!我该如何引爆它们?我尝试使用explode=(0.05,0.05,0.05,0.05)并将explode=explode添加到ax.pie中,但得到的错误是:ValueError:“explode”的长度必须为“x”,看起来有些饼图只有3段?因此,当您为explode传入4个值时,它会抱怨。您需要确保对于每个饼图,
explode
数组的长度与
subdf.cnt
的长度相同。所以,在你的循环中,试着制作
explode=[0.05]*len(subdf.cnt)
或者类似的东西这对我有帮助。