我正在写一个代码来输出3个油炸圈饼图表。我先画3个饼图,然后我想用一个白色的圆圈填充每个饼图。你知道吗
我成功地输出了3个饼图,但白色的圆圈只出现在最后一个。你知道吗
我如何使它出现在所有三个?你知道吗
fig, axes = plt.subplots(1,3, figsize=(10,5))
for ax, col in zip(axes, df.columns):
ax.pie(df[col], labels=None, colors=colors)
ax.set(ylabel='', title=col, aspect='equal')
centre_circle = plt.Circle((0,0),0.70,fc='white')
fig = plt.gcf()
fig.gca().add_artist(centre_circle)
axes[0].legend(labels, bbox_to_anchor=(0, 0.5))
fig.savefig('your_file.png')
plt.show()
因为
fig.gca()
保存了图中最后创建的轴,所以白圈被放置在那里三次,与循环变量无关。您只需使用
ax
变量在每次迭代中将圆艺术家添加到轴但是,您的方法对我来说似乎是一个不必要的解决方法,因为您可以通过使用
wedgeprops
kwarg及其width
参数来完成油炸圈饼形状(有关更多信息,请参见here):试试看
而不是在每次创建饼图后手动绘制白色圆。你知道吗
完整示例:
请注意,您甚至不必在列上循环,但可以直接从数据框创建饼图:
结果:
相关问题 更多 >
编程相关推荐