Specialized Charts with Vizly
Beyond the standard chart types, Vizly provides a set of specialized charts for unique visualization needs: gauges for KPIs, liquid fill for progress, word clouds for text analysis, pictorial bars for icon-driven displays, theme rivers for trend composition, and polar charts for circular patterns. v1.0.1 accepts pd.DataFrame, list[dict], or dict[list] directly for all data parameters. Use chart.render('file.html') to write to a file or chart.to_html() for a string.
Gauge for single KPIs
Perfect for real-time monitoring dashboards where you need a single metric displayed as a dial.
import vizly as vz
chart = vz.gauge(value=72, title='Capacity used', theme='corporate')
chart.to_html()
Liquid fill for progress
A liquid-filled container that shows progress toward a goal. Works great alongside gauges for a different visual treatment.
import vizly as vz
chart = vz.liquid(value=0.72, title='Fill level', theme='corporate')
You can think of liquid as a progress bar alternative - the value ranges from 0.0 to 1.0.
Word cloud for text analysis
Display a set of words sized by frequency or importance. Great for tag clouds, topic modeling, survey responses, and SEO keyword analysis.
import pandas as pd
import vizly as vz
df = pd.DataFrame({
'name': ['latency', 'throughput', 'dashboard', 'alert', 'pipeline',
'theme', 'embed', 'streamlit', 'fastapi', 'heatmap',
'sankey', 'geo', 'candlestick', 'radar', 'funnel'],
'value': [96, 88, 74, 69, 61, 55, 50, 47, 44, 40, 36, 31, 28, 24, 20],
})
chart = vz.wordcloud(df, title='Topic cloud', theme='corporate')
Pictorial bar
Bar charts where each bar is rendered as a repeating pictogram icon. Adds visual interest to categorical comparisons.
import pandas as pd
import vizly as vz
df = pd.DataFrame({
'region': ['Northeast', 'Southeast', 'Midwest', 'Southwest', 'West', 'Canada'],
'sales': [86, 64, 71, 58, 93, 47],
})
chart = vz.pictorial_bar(df, x='region', y='sales',
title='Sales by region', theme='corporate')
Theme river for trend composition
Show how multiple categories contribute to a total over time. Like a stacked area chart but with a flowing, river-like aesthetic.
import pandas as pd
import vizly as vz
df = pd.DataFrame({
'date': ['2026-01-01', '2026-01-01', '2026-01-01', '2026-01-01',
'2026-01-02', '2026-01-02', '2026-01-02', '2026-01-02',
'2026-01-03', '2026-01-03', '2026-01-03', '2026-01-03',
'2026-01-04', '2026-01-04', '2026-01-04', '2026-01-04',
'2026-01-05', '2026-01-05', '2026-01-05', '2026-01-05',
'2026-01-06', '2026-01-06', '2026-01-06', '2026-01-06',
'2026-01-07', '2026-01-07', '2026-01-07', '2026-01-07',
'2026-01-08', '2026-01-08', '2026-01-08', '2026-01-08'],
'name': ['Mobile', 'Desktop', 'Tablet', 'API']*8,
'value': [21, 28, 12, 15, 25, 32, 16, 19, 29, 36, 20, 23,
24, 31, 15, 18, 28, 35, 19, 22, 32, 39, 23, 26,
27, 34, 18, 21, 31, 38, 22, 25],
})
chart = vz.theme_river(df, title='Channel mix over time', theme='corporate')
Radar for multi-metric comparison
Compare entities across several metrics on a circular radar chart.
import pandas as pd
import vizly as vz
df = pd.DataFrame({
'name': ['Atlas', 'Nova', 'Pulse'],
'speed': [88, 72, 95],
'power': [76, 91, 68],
'range': [81, 64, 87],
'accuracy': [90, 85, 78],
'efficiency': [70, 88, 82],
})
chart = vz.radar(df, names='name',
values=['speed', 'power', 'range', 'accuracy', 'efficiency'],
title='Capability radar', theme='corporate')
Polar chart
Circular chart for showing cyclic or periodic patterns.
import pandas as pd
import vizly as vz
df = pd.DataFrame({
'region': ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
'sales': [86, 64, 71, 58, 93, 47, 72],
})
chart = vz.polar(df, x='region', y='sales',
title='Weekly sales pattern', theme='corporate')
Specialized dashboard
import pandas as pd
import vizly as vz
vz.set_theme("corporate")
chart = vz.page(charts=[
vz.gauge(value=85, title='Performance'),
vz.liquid(value=0.65, title='Progress'),
vz.wordcloud(pd.DataFrame({
'name': ['fast', 'reliable', 'scalable', 'secure', 'efficient',
'modern', 'clean', 'responsive', 'intuitive', 'powerful'],
'value': [95, 88, 82, 76, 71, 65, 60, 55, 50, 45],
}), title='Feedback cloud'),
vz.radar(pd.DataFrame({
'name': ['Product', 'Platform', 'Service'],
'quality': [92, 85, 78],
'speed': [88, 91, 72],
'support': [75, 68, 88],
'value': [80, 85, 82],
'ux': [90, 78, 85],
}), names='name', values=['quality', 'speed', 'support', 'value', 'ux'],
title='Product comparison'),
], title="Specialized Dashboard")
chart.to_html()
When to use which
| Chart type | Best for | Value range |
|---|---|---|
gauge | Single KPI dial | numeric |
liquid | Progress toward goal | 0.0 - 1.0 |
wordcloud | Text frequency visualization | name, value |
pictorial_bar | Icon-augmented category comparison | x, y |
theme_river | Composition over time | date, name, value |
radar | Entity comparison across metrics | names, values list |
polar | Cyclic / radial patterns | x, y |