好吧matplotlib afficionados,我们知道如何绘制donut chart,但什么比甜甜圈图更好?双圆圈图。具体来说:我们有一组元素属于第一类分类的不相交类别和子类别。圆环图应该具有外环中的类别的切片和内环中的子类别的切片,显然与外切片对齐。
是否有任何提供此功能的库或我们是否需要在此处解决此问题?
答案 0 :(得分:11)
要获得双圆环图,您可以根据需要在同一个地块中绘制尽可能多的饼图。因此外部馅饼的楔形设置为width
,内部馅饼的半径小于或等于1-width
。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
ax.axis('equal')
width = 0.3
cm = plt.get_cmap("tab20c")
cout = cm(np.arange(3)*4)
pie, _ = ax.pie([120,77,39], radius=1, labels=list("ABC"), colors=cout)
plt.setp( pie, width=width, edgecolor='white')
cin = cm(np.array([1,2,5,6,9,10]))
labels = list(map("".join, zip(list("aabbcc"),map(str, [1,2]*3))))
pie2, _ = ax.pie([60,60,37,40,29,10], radius=1-width, labels=labels,
labeldistance=0.7, colors=cin)
plt.setp( pie2, width=width, edgecolor='white')
plt.show()
注意:我在matplotlib库中也将此代码作为nested pie example提供。
答案 1 :(得分:4)