введите описание изображения здесь
введите описание изображения здесь
Что мне нравится в них, так это то, что цвета позволяют легко увидеть первый уровень и его размер, но представлены только квадраты второго уровня. Я чувствую, что это облегчает чтение, чем то, что я могу сделать в настоящее время (см. ниже)
Код: Выделить всё
#test data
import pandas as pd
product = ["Pins", "Binders", "Paper",
"Pins", "Binders", "Paper"]
city = ["Amsterdam", "Amsterdam", "Amsterdam",
"Brussels", "Brussels", "Brussels"]
sales = [6, 4, 1, 5, 3, 1]
df = pd.DataFrame(
dict(product=product, city=city, sales=sales)
)
df
product city sales
0 Pins Amsterdam 6
1 Binders Amsterdam 4
2 Paper Amsterdam 1
3 Pins Brussels 5
4 Binders Brussels 3
5 Paper Brussels 1
Код: Выделить всё
import plotly.express as px
fig = px.treemap(df, path=['city', 'product'], values='sales')
fig.update_layout(margin = dict(t=50, l=25, r=25, b=25))
fig.show()
Мне не нравится стиль этой древовидной карты: показан первый уровень, а внутри него меньше второй уровень.
Я также пробовал использовать squrify с цветом, установленным в качестве первого уровня (squarify допускает только 1 уровень, если я правильно понимаю):
Код: Выделить всё
import matplotlib.pyplot as plt
import seaborn as sns
import squarify
fig, ax = plt.subplots(figsize=(12, 8))
ax.set_axis_off()
category_codes, unique_categories = pd.factorize(df.loc[:, "city"])
colors = [sns.color_palette("deep")[cat] for cat in category_codes]
squarify.plot(sizes=df.loc[:, "sales"],
label=df.loc[:, "product"],
color=colors,
pad=True,
ax=ax)
Но здесь цвета не сгруппированы вместе.
Какие инструменты вы бы порекомендовали, чтобы добиться сходства с первым уровнем? Мне не нужно, чтобы древовидная карта была интерактивной, я собираюсь экспортировать ее как статическое изображение.