Treemap
A treemap displays hierarchical data as a set of nested rectangles. Each group is represented by a rectangle, which area is proportional to its value. In Python, the squarify library allows to compute the rectangle positions and plot it.
⏱ Quick start
A treemap displays each element of a dataset as a rectangle. It allows to see what proportion each element has compared to the whole.
This is doable with python and Matplotlib thanks to the squarify library that can be used as follow:🔥
Most basic Treemap with Python, Matplotlib and Squarify
# libraries
import matplotlib.pyplot as plt
import squarify # pip install squarify (algorithm for treemap)
import pandas as pd
# Create a data frame with fake data
df = pd.DataFrame({'nb_people':[8,3,4,2], 'group':["group A", "group B", "group C", "group D"] })
# plot it
squarify.plot(sizes=df['nb_people'], label=df['group'], alpha=.8 )
plt.axis('off')
plt.show()ℹ ️ A note on the Squarify package
The squarify library is a pure Python implementation of the squarify treemap layout algorithm. It is a project developped by Uri Laserson that has its documentation on github.
Squarify documentation
Treemap with Matplotlib and Squarify
Matplotlib is probably the most famous and flexible python library for data visualization. It is appropriate to build any kind of chart, including the lollipop plot thanks to its stem() function.
Treemap with Plotly
Plotly is a very powerful library to create interactive graphics. It is known for its great interactivity and its ability to handle large datasets.
It comes with multiple functions to create treemaps, for both of its API: plotly.graph_objects and plotly.express. Try to hover and click on the following treemap to see how it reacts:
Related chart types
💡 Out of dataviz inspiration?
I have spent years collecting the most beautiful data visualizations out there. Get the list of my top 300 dataviz projects, hand-picked, for free.
I respect your privacy. Unsubscribe anytime.