Zero-dependency SVG charting for Python. No numpy, no pandas, no matplotlib. Pure stdlib. 15 chart types.
pip install charted
The entire API is a constructor and a method. Pass data. Get a chart.
from charted import BarChart
chart = BarChart(
title="Revenue by Region ($M)",
data=[4.2, 7.8, 6.1, 9.3, 5.5, 8.7],
labels=["APAC", "North Am", "Europe",
"LatAm", "MEA", "ANZ"],
)
chart.save("chart.svg")
from charted import LineChart
chart = LineChart(
title="API Latency Percentiles (ms)",
data=[p50, p95, p99],
labels=months,
series_names=["p50", "p95", "p99"],
)
chart.save("latency.svg")
from charted import ComboChart
chart = ComboChart(
title="Revenue vs Net Margin",
series=[
{"data": revenue, "type": "column"},
{"data": margin, "type": "line",
"axis": "secondary"},
],
labels=quarters,
)
chart.save("combo.svg")
Every chart below was rendered by charted itself from real-ish datasets. No screenshots. No stubs.
Pure Python stdlib. No numpy, pandas, or matplotlib. pip install and you're done.
Built-in light, dark, high-contrast presets. Full custom palette and font overrides. Per-series styling.
Stacked, side-by-side, and grouped. Negative values handled with proper zero baselines.
charted-mcp renders charts straight into AI chats. Listed on awesome-mcp-servers. Run with uvx.
Charts render in notebook cells automatically. No extra configuration needed.
Generate charts from CSV or JSON without writing Python. Batch-process entire directories.
Save to any format. PNG via optional cairosvg. Embed as data-URLs in markdown or HTML.
Built-in parsers, no pandas required. Wide and long CSV both supported via --transpose.