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)
或者类似的东西这对我有帮助。