Skip to main content

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 typeBest forValue range
gaugeSingle KPI dialnumeric
liquidProgress toward goal0.0 - 1.0
wordcloudText frequency visualizationname, value
pictorial_barIcon-augmented category comparisonx, y
theme_riverComposition over timedate, name, value
radarEntity comparison across metricsnames, values list
polarCyclic / radial patternsx, y