TreeMap
en langage python
L'essentiel de cette page
Les treemap permettent de visualiser les catégories et sous-catégories d'un grand nombre de variables catégorielles.
1- Treemap avec squarify
A développer :
# libraries
import matplotlib.pyplot as plt
import squarify # pip install squarify (algorithm for treemap)
# If you have 2 lists
squarify.plot(sizes=[13,22,35,5], label=["group A", "group B", "group C", "group D"], alpha=.7 )
plt.axis('off')
plt.show()
Un exemple issu de https://python-graph-gallery.com/200-basic-treemap-with-python/
Avec couleur et taille de texte personnalisée + croisé de variables pandas (cliquer pour voir le code ci-dessous)
import matplotlib.pyplot as plt
import squarify #
import seaborn as sns
diamonds =sns.load_dataset("diamonds")
# https://sites.google.com/view/aide-python/prise-en-main-de-python/les-objets-python/les-dataframes-python-avec-panda#h.p_WQJ0MI2JPptY
effectifs = diamonds.value_counts()
#
import matplotlib.cm as cm
import matplotlib
my_values = effectifs.values
cmap = cm.Blues
mini=min(my_values)
maxi=max(my_values)
norm = matplotlib.colors.Normalize(vmin=mini, vmax=maxi)
#
colors = [cmap(norm(value)) for value in my_values]
#
squarify.plot(sizes=list(effectifs.values),
label=list(effectifs.index), alpha=.7,
color = colors,
text_kwargs={'fontsize':6, 'fontname':"Times New Roman Bold",'weight':'bold'})
plt.axis('off')
plt.title('Treemap des catégories de diamants')
plt.show()
2- Treemap avec plotly
Avec plotly
import plotly.express as px
df = px.data.tips()
fig = px.treemap(df, path=['day', 'time', 'sex'], values='total_bill')
fig.show()
TreeMap en croisant 3 variables ou plus.
import seaborn as sns
# print(sns.get_dataset_names())
diamonds = sns.load_dataset("diamonds") ; print(diamonds)
print(diamonds.head())
import pandas as pd ; import plotly.express as px
temp = pd.crosstab([diamonds.cut, diamonds.color], [diamonds.clarity],
rownames=['cut', "color"],
colnames=['clarity'],
dropna=False)
resultat = temp.stack().reset_index(name='Effectif')
fig = px.treemap(resultat, path=['cut', 'color', 'clarity'], values='Effectif')
fig.show()
Lien externe : https://plotly.com/python/treemaps/