25 lines
784 B
Python
25 lines
784 B
Python
"""
|
|
Display sales of various cities in a sunburst chart.
|
|
|
|
Given the cities can have recurring parents, we can have
|
|
a sunburst chart with 2 rings, the centermost ring for the
|
|
country, and the outmost ring to have sales per city.
|
|
"""
|
|
import matplotlib
|
|
import pandas as pd
|
|
from matplotlib import pyplot
|
|
|
|
if __name__ == '__main__':
|
|
matplotlib.use("QtCairo")
|
|
df = pd.DataFrame(data={
|
|
"country": ["France", "France", "Spain", "Spain"],
|
|
"city": ["Montpellier", "Bordeaux", "Madrid", "Valencia"],
|
|
"sales": [150_000, 127_000, 97_200, 137_250]
|
|
})
|
|
df.set_index(["country", "city"], inplace=True)
|
|
total: int = df["sales"].sum()
|
|
print(df)
|
|
axes = df.plot.pie(subplots=True, autopct=lambda x: f"{x * total / 100:.0f} {x:.2f}%")
|
|
pyplot.show()
|
|
|