I have seen many ways for creating a multi-level pie chart where inner circle is subset of outer circle, however, I am trying to create a chart like this in matplotlib.
How can I create a chart like above in python using matplotlib?
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()
size = 0.3
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
cmap = plt.get_cmap("tab20c")
outer_colors = cmap(np.arange(3)*4)
inner_colors = cmap([1, 2, 5, 6, 9, 10])
ax.pie(vals.sum(axis=1), radius=3-0.9, colors=outer_colors,
wedgeprops=dict(width=0.9, edgecolor='w'),labels=["Europe","North America","Scandiavia"],
pctdistance=1.1, labeldistance=0.65)
ax.pie(vals.flatten(), radius=3, colors=inner_colors,
wedgeprops=dict(width=0.9, edgecolor='w'),labels=["Germany","France","USA","Mexico","Finland","Sweden"],
pctdistance=1.1, labeldistance=0.85)
ax.set(aspect="equal", title='')
plt.show()
Referance : https://matplotlib.org/stable/gallery/pie_and_polar_charts/nested_pie.html
You can adjust some parameters like radius,width,colors, labeldistance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With