Skip to main content

A Streamlit V2 component to plot Voronoi Treemaps from pandas dataframes.

Project description

Streamlit Voronoi Treemap Component (V2)

A custom Streamlit component built on the Streamlit V2 Component Architecture that renders beautiful, dynamic Voronoi Treemaps from pandas DataFrames. It uses D3.js and d3-voronoi-treemap to lay out the data natively in the DOM, avoiding iframe overhead.

Features

  • Native Rendering: Built with Streamlit V2 architecture, ensuring native DOM components without iframes.
  • Grouped Hierarchies: Supports grouped data to visualize hierarchical relationships.
  • Customization Options: Includes controls for color schemes, label scaling, borders, and legends.
  • Responsive Sizing: Adapts dynamically to your Streamlit page width.

Installation

You can install this component in editable mode locally:

pip install -e .

To build the frontend, make sure you have npm installed:

cd st_vortree/frontend
npm install
npm run build

Quick Start

Import the custom component and pass a pandas DataFrame with your data. The DataFrame requires at a minimum a name column and a numeric value column.

import streamlit as st
import pandas as pd
from st_vortree import st_vortree

# Sample dataset
data = [
    {"Company": "Apple", "Sector": "Tech", "MarketCap": 2800},
    {"Company": "Microsoft", "Sector": "Tech", "MarketCap": 2900},
    {"Company": "Johnson & Johnson", "Sector": "Healthcare", "MarketCap": 400},
    {"Company": "Pfizer", "Sector": "Healthcare", "MarketCap": 200},
]
df = pd.DataFrame(data)

st.title("Voronoi Treemap Example")

# Render grouped Treemap
st_vortree(
    df,
    name_col="Company",
    value_col="MarketCap",
    group_col="Sector",           # Groups polygons by 'Sector'
    color_scheme="tableau10",     # Available: tableau10, category10, pastel1, dark, cool, warm
    show_values=True,
    show_legend=True,
    label_scale=1.0,
    border_color="#ffffff",
    border_width=2,
    key="my_vortree"
)

API Reference

st_vortree(df, ...)

Renders a given pandas DataFrame as a Voronoi treemap visualization.

Arguments:

  • df (pandas.DataFrame): The DataFrame containing the input data.
  • name_col (str): The name of the column containing the labels for the polygons. Defaults to "name".
  • value_col (str): The name of the column containing the numeric sizes of the polygons. Defaults to "value".
  • group_col (str, optional): The name of the column used for grouping features together into a hierarchy. Defaults to None.
  • color_scheme (str): D3 categorical color scale to apply. Options include "tableau10", "category10", "pastel1", "dark", "cool", "warm". Defaults to "tableau10".
  • show_values (bool): Whether to show the metric value and relative percentage inside the polygon labels. Defaults to False.
  • label_scale (float): Scale multiplier for the dynamically sized text labels. Defaults to 1.0.
  • border_color (str): Hex color of the polygon outlines. Defaults to "#ffffff".
  • border_width (int): Thickness of the polygon outlines. Defaults to 1.
  • show_legend (bool): Whether to draw a legend beside the nodes. Defaults to True.
  • key (str, optional): An optional Streamlit key to uniquely identify the component instance.

Architecture Highlights

This component does not use the deprecated V1 architecture's <iframe> mounting framework, making it significantly more performant and natively styled. The D3 logic parses and modifies standard DOM nodes wrapped by a generic Web Component interface (@streamlit/component-v2-lib).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

st_vortree-0.1.8.tar.gz (96.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

st_vortree-0.1.8-py3-none-any.whl (96.4 kB view details)

Uploaded Python 3

File details

Details for the file st_vortree-0.1.8.tar.gz.

File metadata

  • Download URL: st_vortree-0.1.8.tar.gz
  • Upload date:
  • Size: 96.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for st_vortree-0.1.8.tar.gz
Algorithm Hash digest
SHA256 9c0883c9973c1eb1f381093650f18f311333c73ca53cb7dbe830896c583557d1
MD5 5306167c271208fe04ebc19b524545cf
BLAKE2b-256 1c4eb2a7c60d1d9de825b8c40f981760ee4f83d8cf4665b646f4b88babfc5f08

See more details on using hashes here.

File details

Details for the file st_vortree-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: st_vortree-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 96.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for st_vortree-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ebb909ead76ac214128e328ae1fb055bfba07d8467f5a6397f7d93f54b5c593d
MD5 1d9bdf059e8758cd2d51ae6c9171ad5c
BLAKE2b-256 5c85d2c53861cedd506ea5ee0c615f77c922e4d0f093e9aa238ea1b3a7769e64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page