· Visualisations · 3 min read

Creating Treemaps with Seaborn in Python for Data Visualization

Creating Treemaps with Seaborn in Python for Data Visualization

Introduction to Treemaps and Their Usefulness

Treemaps are an innovative and space-efficient method of data visualization that enables the display of hierarchical data using nested rectangles. Each rectangle represents a category or a subcategory, with the size and color of each rectangle illustrating different quantities or metrics. Treemaps are particularly useful for analyzing large and complex datasets, allowing us to identify patterns, trends, and relationships more easily.

With Seaborn, a popular Python visualization library, creating treemaps becomes a more straightforward process. Leveraging Seaborn’s simple syntax and powerful visualization features, developers can quickly integrate treemaps into their data analysis projects.

Properties and Parameters of Treemaps

Creating a treemap with Seaborn requires handling several properties and parameters. Let’s look at the most common ones:

  1. Data: The dataset should be in a Pandas DataFrame format, with columns representing hierarchical levels and a designated column for values (size of the rectangles).

  2. Hierarchy: The nested structure representing how different elements are related to one another in terms of parent-child relationships.

  3. Color scale: Colors may represent different categories, as well as varying values within the dataset. You can choose from various color maps, such as viridis, plasma, cividis, etc.

  4. Size scale: The proportion of the rectangles’ sizes, either linear or logarithmic, may influence the treemap’s visual appeal and ease of interpretation.

  5. Labels: Appropriate labels help provide context and enable easier understanding of the visualized data.

A Simplified Real-life Example

Let’s create a simple treemap using Seaborn to visualize a common scenario – the sales data of various products across different regions.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Sample data
data = {'Region': ['North America', 'Europe', 'Asia'],
        'Product A': [1200, 550, 1540],
        'Product B': [940, 680, 1120],
        'Product C': [790, 320, 760]}

df = pd.DataFrame(data)
df = df.melt(id_vars='Region', var_name='Product', value_name='Sales')

# Create the treemap
plt.figure(figsize=(12, 6))
sns.set_theme(style='white')
sns.color_palette('viridis', as_cmap=True)
cmap = sns.color_palette("viridis", as_cmap=True)
sns.treemap(data=df, path=['Region', 'Product'], values='Sales', legend=True, ax=None, palette=cmap)
plt.show()

This treemap will showcase sales figures for each product across various regions, promoting a better understanding of product performance across these areas.

A Complex Real-life Example

Now, let’s explore a more complex scenario – analyzing sales data for multiple stores, separated by region and category.

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# Sample data
data = {'Region': ['North America', 'Europe', 'Asia'] * 3,
        'Category': ['Electronics', 'Electronics', 'Electronics', 'Clothing', 'Clothing', 'Clothing', 'Home & Garden', 'Home & Garden', 'Home & Garden'],
        'Store 1': [3200, 2100, 5500, 4700, 3100, 3900, 2300, 1800, 3600],
        'Store 2': [2900, 2300, 4900, 4300, 3500, 4300, 2100, 1700, 3400],
        'Store 3': [2600, 2400, 4600, 4500, 3800, 4200, 2000, 1500, 3300]}

df = pd.DataFrame(data)
df = df.melt(id_vars=['Region', 'Category'], var_name='Store', value_name='Sales')

# Create the treemap
plt.figure(figsize=(16, 8))
sns.set_theme(style='white')
sns.color_palette('viridis', as_cmap=True)
cmap = sns.color_palette("viridis", as_cmap=True)
sns.treemap(data=df, path=['Region', 'Category', 'Store'], values='Sales', legend=True, ax=None, palette=cmap)
plt.show()

This treemap depicts a more comprehensive view of the sales data, broken down by region, product category, and individual stores.

Personal Tips on Working with Treemaps

  1. Keep it simple: Avoid overcrowding the treemap with too many hierarchical levels or elements. This can make it difficult for viewers to comprehend the data.

  2. Use color wisely: Choose a color scheme that is accessible and easy to interpret. Use a consistent color palette so that similar categories can be easily compared.

  3. Adjust size scale: Experiment with different size scales to make the treemap more visually appealing and easier to understand.

  4. Provide context: Use descriptive labels and a helpful legend to assist your audience in understanding the treemap’s content and purpose.

Following these tips and practices while working with treemaps in Seaborn can ensure more effective data visualization and a better overall experience for your audience.