Skip to content
H.P. Gansevoort edited this page Sep 11, 2026 · 90 revisions

MatPlotLibNet Wiki

Matplotlib-inspired charting for .NET. Server-rendered SVG / PNG / PDF / animated GIF, an MCP server so an AI agent can draw with it, 83 series types, 13 map projections with embedded Natural Earth data, 30 themes, LaTeX-style MathText, O(1) streaming with 53 technical indicators, a control room (Plt.OpsDashboard() — KPI tiles, state timelines, one shared trend window), and native controls for Blazor, WPF, MAUI, Avalonia, Uno and ASP.NET Core. Fluent API, DI-friendly — no JavaScript framework, no WebView, no SaaS.

Version 1.14.4 is the current release. Coming in 1.15.0: MatPlotLibNet.Mcp opens the library to agents — a Model Context Protocol server a host starts over stdio, so Claude or VS Code can render any of these chart types from a JSON spec and look at the result. It is on main now; see MCP Server.

The 1.14 line is control-room work: the pack itself, then the fixes and extensions it asked for (a secondary Y axis that is a full citizen, streaming that draws in SVG, 3-D axis titles that clear their own labels, one anatomy per row of tiles, and a hidden axis that reserves no room — which is what finally let a row of tiles be as wide as it looks). · NuGet · Changelog · License: MIT

dotnet add package MatPlotLibNet
Plt.Create()
   .AddSubPlot(1, 1, 1, ax => ax.Plot(x, y, s => s.Label = "signal"))
   .SaveSvg("chart.svg");

Start here

Page For
Getting Started install, first chart, output formats, subplots
Fluent Cheatsheet one page: Plt · FigureBuilder · AxesBuilder
Chart Types all 83 series with code — including the control room
Package Map which of the 14 NuGet + 3 npm packages you need
Styling · MatplotlibThemes themes, colours, fonts, layout
Advanced animation, geo projections, MathText, DI
Streaming live data, O(1) ring buffers, indicators
Bidirectional SignalR push charts to Blazor / Angular / React / Vue
Interactive Controls · Keyboard Shortcuts pan, zoom, brush-select, hotkeys
Notebooks Polyglot / Jupyter
Accessibility ARIA, contrast, screen readers
Benchmarks render and export timings
Roadmap · Contributing where it is going, how to help

Also: Playground · Cookbook · API Reference.

Who it is for

You are… You get…
Blazor / ASP.NET Core <MplChart> and <MplLiveChart>, SignalR push, a REST endpoint — wired with standard DI
WPF / MAUI / Avalonia / Uno native controls (SkiaSharp or Microsoft.Maui.Graphics), pan / zoom / brush-select, no WebView
Data scientist inline SVG in notebooks, plotting straight from Microsoft.Data.Analysis.DataFrame
Trading / finance candlestick, OHLC, 53 indicators, drawing tools, backtest panels, RRG
Ops / control room Plt.OpsDashboard() — KPI tiles, state timelines, one shared trend window
Backend / headless render SVG, PNG, PDF or GIF server-side with zero UI dependencies
Angular / React / Vue TypeScript clients on the same hub and the same chart definitions

What it is not

Not a JavaScript wrapper, not a WebView host, not a hosted service. Charts are built and rendered in .NET; what leaves the process is a picture or a chart definition.

Quality bar

Every class passes a strict per-class coverage gate at ≥90 % line and branch (currently 659 classes, 99.6 % line / 97.2 % branch) across 10,025 tests. Rendering is verified against matplotlib pixel-fidelity fixtures.

Questions or something missing? Open a Discussion or an Issue — releases follow what people actually need.

Clone this wiki locally