MatPlotLibNet 1.4.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package MatPlotLibNet --version 1.4.0
                    
NuGet\Install-Package MatPlotLibNet -Version 1.4.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MatPlotLibNet" Version="1.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MatPlotLibNet" Version="1.4.0" />
                    
Directory.Packages.props
<PackageReference Include="MatPlotLibNet" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MatPlotLibNet --version 1.4.0
                    
#r "nuget: MatPlotLibNet, 1.4.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MatPlotLibNet@1.4.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MatPlotLibNet&version=1.4.0
                    
Install as a Cake Addin
#tool nuget:?package=MatPlotLibNet&version=1.4.0
                    
Install as a Cake Tool

MatPlotLibNet

A .NET 10 / .NET 8 charting library inspired by matplotlib. Fluent API, dependency injection, parallel SVG rendering, polymorphic export (SVG / PNG / PDF / GIF), and multi-platform output to Blazor, MAUI, Avalonia, Uno Platform, ASP.NET Core, Angular, React, and Vue.

CI NuGet NuGet Downloads License: MIT GitHub stars

v1.4.0 — Streaming & Realtime. First-class live data support for dashboards and telemetry:

  1. Streaming series — four new series types (StreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries) backed by DoubleRingBuffer with AppendPoint(x, y) / AppendBar(o, h, l, c). Thread-safe snapshot pattern for render isolation. Series count: 70 → 74.
  2. StreamingFigure — wraps Figure with render throttling (configurable 16ms–1000ms), data version tracking, and auto-scaling axes via AxisScaleMode (Fixed, AutoScale, SlidingWindow, StickyRight). BuildStreaming() on the fluent builder.
  3. 11 streaming indicatorsStreamingSma, StreamingEma, StreamingRsi, StreamingBollinger, StreamingMacd, StreamingObv, StreamingAtr, StreamingStochastic, StreamingWilliamsR, StreamingCci, StreamingVwap. All O(1) per append, auto-attach to candlestick via BarAppended event.
  4. 5 platform streaming controlsMplStreamingChartControl (Avalonia), MplStreamingChartElement (Uno), MplStreamingChartView (MAUI), MplStreamingChart (Blazor), StreamingChartSession (ASP.NET Core server push).
  5. SVG diff engine + Rx IObservable<T> adapter for bandwidth optimization and reactive pipelines.

4 183 tests green across 11 test projects.

For earlier releases, see the full CHANGELOG.


Packages

Package Install What it does
MatPlotLibNet dotnet add package MatPlotLibNet Core: models, fluent API, SVG rendering, JSON, transforms
MatPlotLibNet.DataFrame dotnet add package MatPlotLibNet.DataFrame Microsoft.Data.Analysis.DataFrame extension methods — plot, indicators (SMA/EMA/RSI/MACD/…), and polynomial regression from named columns
MatPlotLibNet.Skia dotnet add package MatPlotLibNet.Skia PNG, PDF, and animated GIF export via SkiaSharp
MatPlotLibNet.Blazor dotnet add package MatPlotLibNet.Blazor MplChart + MplLiveChart Razor components with SignalR
MatPlotLibNet.AspNetCore dotnet add package MatPlotLibNet.AspNetCore REST endpoints, SignalR hub, IChartPublisher
MatPlotLibNet.Interactive dotnet add package MatPlotLibNet.Interactive figure.ShowAsync() — browser popup, no server needed
MatPlotLibNet.GraphQL dotnet add package MatPlotLibNet.GraphQL GraphQL queries + subscriptions via HotChocolate
MatPlotLibNet.Maui dotnet add package MatPlotLibNet.Maui Native MplChartView via Microsoft.Maui.Graphics
MatPlotLibNet.Avalonia dotnet add package MatPlotLibNet.Avalonia Native MplChartControl for Avalonia 12 — Skia backend, optional local interaction
MatPlotLibNet.Uno dotnet add package MatPlotLibNet.Uno Native MplChartElement for Uno Platform (WinUI 3 / Android / iOS / macCatalyst)
MatPlotLibNet.Notebooks #r "nuget: MatPlotLibNet.Notebooks" Inline SVG in Polyglot / Jupyter notebooks
@matplotlibnet/angular npm install @matplotlibnet/angular Angular components + TypeScript SignalR client
@matplotlibnet/react npm install @matplotlibnet/react React hooks + components + TypeScript SignalR client
@matplotlibnet/vue npm install @matplotlibnet/vue Vue 3 composables + TypeScript SignalR client

Documentation

Full documentation is on the GitHub Wiki, the Cookbook (runnable examples with rendered images), and the API Reference (generated from XML doc comments):

  • Playground — try charts live in the browser — pick an example, tweak parameters, see the SVG update instantly
  • Cookbook — copy-paste code examples with rendered output for every chart type
  • API Reference — full API documentation from source
  • Getting Started — installation, output formats, subplots
  • Fluent Cheatsheet — one-page reference for Plt / FigureBuilder / AxesBuilder
  • Package Map — all 11 NuGet + 3 npm packages in detail
  • Chart Types — all 74 series with code examples
  • Streaming & Realtime — ring buffers, StreamingFigure, axis scaling, 11 streaming indicators, platform controls
  • Interactive Controls — Avalonia + Uno native controls, managed interaction layer
  • Bidirectional SignalR — server-authoritative interactive charts, event hierarchy, hub wiring
  • DataFrame — indicators, polynomial regression from Microsoft.Data.Analysis.DataFrame
  • Notebooks — Polyglot Notebooks + Jupyter inline rendering
  • Styling — themes, colormaps, PropCycler
  • Accessibility — SVG semantics, keyboard navigation, color-blind palette
  • Advanced — date axes, math text, animations, GIF, real-time
  • Benchmarks — SVG rendering, SIMD transforms, indicators
  • Roadmap — version history and planned phases
  • Contributing — build, test, coding conventions

Quick start

using MatPlotLibNet;
using MatPlotLibNet.Styling;

double[] x = [1, 2, 3, 4, 5];
double[] y = [2, 4, 3, 5, 1];

Plt.Create()
    .WithTitle("My First Chart")
    .WithTheme(Theme.Dark)
    .Plot(x, y, s => { s.Color = Color.Blue; s.Label = "Data"; })
    .WithLegend()
    .Save("chart.svg");

Features

74 series types — line, scatter, bar, histogram, pie, box, violin, heatmap, contour, candlestick, OHLC, treemap, sunburst, Sankey, polar, polar heatmap, 3D surface, Bar3D, PlanarBar3D, Line3D, Trisurf3D, Contour3D, Quiver3D, Voxels, Text3D, radar, waterfall, funnel, gauge, streaming line/scatter/signal/candlestick, and more.

Native UI controlsMplChartControl for Avalonia 12 and MplChartElement for Uno Platform render charts natively via SkiaSharp — no browser, no WebView, no SignalR required. Set IsInteractive="True" for local pan / zoom / reset / brush-select. Connect to a SignalR hub with .WithServerInteraction(hubConnection) for server-authoritative mode.

MathText — LaTeX-like inline math in any label or title: $\alpha^{2}$, $\frac{a}{b}$, $\sqrt{x}$, $\hat{x}$, $\mathbf{F}$, $\mathbb{R}$. 96 symbol mappings (Greek, math operators, arrows, relations, set/logic, blackboard bold), fractions, square roots, accents, font variants, spacing, and scaling delimiters.

3-D charts — 12 series types: Surface, Scatter3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D (Delaunay), Contour3D (marching squares), Quiver3D (vector field), Voxels (face-culled cubes), Text3D (annotations). Full Projection3D pipeline, DepthQueue3D painter's algorithm, LightingHelper shading, and Svg3DRotationScript client-side rotation.

Streaming & RealtimeStreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries backed by DoubleRingBuffer with AppendPoint(x, y). StreamingFigure provides throttled re-rendering and auto-scaling axes (SlidingWindow, StickyRight, AutoScale). 11 streaming indicators (SMA, EMA, RSI, Bollinger, MACD, OBV, ATR, Stochastic, WilliamsR, CCI, VWAP) auto-attach to candlestick data. Streaming controls for Avalonia, Uno, MAUI, Blazor, and ASP.NET Core. SVG diff engine for bandwidth optimization. Rx IObservable<T> adapter.

Bidirectional SignalR — server-authoritative interactive charts with mutation events (zoom, pan, reset, legend toggle) and notification events (brush-select, hover). Stacked-record event hierarchy, natural coalescing, per-caller hover responses.

104 colormaps — viridis, plasma, turbo, coolwarm, and 100 more. NumPy-style SIMD numerics (Vec, Mat, Linalg, Fft). Accessibility (ARIA, keyboard, Okabe-Ito palette, high-contrast theme). Matplotlib look-alike themes. DataFrame integration with 16 financial indicators. Broken axes. Publication-quality SVG/PNG/PDF/GIF export.


License

MIT — free for any use, open-source or commercial, with no copyleft conditions.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on MatPlotLibNet:

Package Downloads
MatPlotLibNet.AspNetCore

ASP.NET Core endpoint helpers for MatPlotLibNet. Serves chart JSON specs for Angular and other SPA frameworks.

MatPlotLibNet.Skia

PNG and PDF export for MatPlotLibNet charts using SkiaSharp.

MatPlotLibNet.Blazor

Blazor components for MatPlotLibNet charting library. Renders charts as inline SVG.

MatPlotLibNet.Maui

MAUI controls for MatPlotLibNet charting library. Renders charts via Microsoft.Maui.Graphics.

MatPlotLibNet.Notebooks

Polyglot Notebooks / Jupyter support for MatPlotLibNet. Renders Figure inline as SVG in notebook cells.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.10.0 205 5/4/2026
1.9.0 237 4/23/2026
1.8.0 239 4/22/2026
1.7.3 233 4/21/2026
1.7.2 239 4/18/2026
1.7.1 217 4/18/2026
1.7.0 224 4/17/2026
1.6.0 218 4/17/2026
1.5.0 220 4/17/2026
1.4.1 212 4/17/2026
1.4.0 198 4/17/2026
1.3.0 218 4/16/2026
1.2.2 203 4/15/2026
1.2.1 202 4/15/2026
1.2.0 208 4/15/2026
1.1.4 200 4/15/2026
1.1.3 220 4/13/2026
1.1.1 219 4/12/2026
1.1.0 201 4/12/2026
1.0.2 205 4/12/2026
Loading failed