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 toNone.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 toFalse.label_scale (float): Scale multiplier for the dynamically sized text labels. Defaults to1.0.border_color (str): Hex color of the polygon outlines. Defaults to"#ffffff".border_width (int): Thickness of the polygon outlines. Defaults to1.show_legend (bool): Whether to draw a legend beside the nodes. Defaults toTrue.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file st_vortree-0.1.0.tar.gz.
File metadata
- Download URL: st_vortree-0.1.0.tar.gz
- Upload date:
- Size: 90.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f6509ef1e760ffe215179c65308ac14845a5e70527d884474a68ff343a11942
|
|
| MD5 |
a85508e7da71558d4c92e6217b7e203a
|
|
| BLAKE2b-256 |
eb96ec2814d7ea25ce62285198d2fed85046a37df6758b7c90d5b0df091ec37b
|
File details
Details for the file st_vortree-0.1.0-py3-none-any.whl.
File metadata
- Download URL: st_vortree-0.1.0-py3-none-any.whl
- Upload date:
- Size: 89.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3fe92099a3ab7ed963dc7b08862b7231f7321bb3c97b8289612c47f8bbfaba5f
|
|
| MD5 |
9f829518eeeafdb09ceee91223454db9
|
|
| BLAKE2b-256 |
176025d7f076a9480d6884a255769481124d960b41b33907fcaacd8eb3fa4825
|