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.3.tar.gz (91.0 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.3-py3-none-any.whl (90.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: st_vortree-0.1.3.tar.gz
  • Upload date:
  • Size: 91.0 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.3.tar.gz
Algorithm Hash digest
SHA256 2f3d0582c8fd6641d4da093442b4e01647be762facdd8dafe32b6e9a6d035c1c
MD5 bbc08b92f588edfab1a937857f9f7586
BLAKE2b-256 467b133ff8e5a0deef636db7ed0fdb88f5487f7c12b9aa72af8b9a45636f2b0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: st_vortree-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 90.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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 dd3939e02b8c8470667390fb6e8d3969f022a0dcb8e725421e402c69b777228a
MD5 309eacd9b6b048d6917120ca3c313161
BLAKE2b-256 c850c71215df83d218015d659ec0ac15d349f384ffef7cacfaede0673cf7d5b8

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