MatPlotLibNet

resmi

Berikan JSON untuk sebuah grafik dan ia merender PNG yang benar-benar dapat dilihat model — 83 jenis grafik, SVG dan PDF ditulis ke file, berjalan secara lokal sebagai alat .NET.

Apa yang bisa Anda lakukan dengan MatPlotLibNet MCP?

  • Render charts from JSON specs — Minta grafik melalui render_chart dan dapatkan PNG beserta ringkasan teks tentang apa yang digambar.
  • Simpan grafik ke file — Gunakan save_chart untuk mengekspor grafik sebagai PNG, SVG, atau PDF dan terima jalur file yang ditulis.
  • Temukan kemampuan grafik — Tanyakan list_chart_types untuk melihat semua 83 tipe seri yang didukung, dari plot garis hingga permukaan 3D.
  • Validasi skema grafik — Dapatkan umpan balik kesalahan tingkat bidang dari describe_chart_schema saat spesifikasi grafik tidak valid.

Dokumentasi

MatPlotLibNet

Pustaka pembuatan bagan .NET 10 / .NET 8 yang terinspirasi oleh matplotlib: API yang lancar, ramah DI, ekspor SVG / PNG / PDF / GIF animasi di sisi server, server MCP sehingga agen AI dapat menggambar dengannya, dan 83 jenis deret. Dilengkapi dengan 13 proyeksi peta dan data Natural Earth tertanam, 30 tema, MathText bergaya LaTeX, streaming O(1) dengan 53 indikator teknis, ruang kendali (Plt.OpsDashboard() — ubin KPI, linimasa status, satu jendela tren bersama), dan kontrol asli untuk Blazor, WPF, MAUI, Avalonia, Uno dan ASP.NET Core, plus klien TypeScript untuk Angular, React dan Vue. Tanpa kerangka kerja JavaScript, tanpa WebView, tanpa SaaS.

CI NuGet NuGet Downloads License: MIT GitHub stars

Ke mana arahnya

Garis 1.15 membuka pustaka untuk agen: MatPlotLibNet.Mcp adalah server Model Context Protocol, sehingga model dapat merender semua jenis bagan ini dari spesifikasi JSON dan melihat hasilnya — dan diberi tahu bidang mana yang salah ketika spesifikasinya tidak sesuai.

Garis 1.14 sebelumnya adalah pekerjaan ruang kendali: Plt.OpsDashboard() dan anatomi ubin hadir bersamanya, dan rilis sejak itu adalah perbaikan dan ekstensi yang diminta oleh dinding operator langsung — sumbu Y sekunder yang menjadi warga penuh, streaming yang menggambar dalam SVG, judul sumbu 3-D yang membersihkan labelnya sendiri, keterangan ubin yang membungkus dan tetap di dalam ubinnya, dan jendela operasi yang tanda centangnya terbaca sebagai waktu.

Setelah itu iramanya digerakkan oleh komunitas: perbaikan bug, dokumentasi, dan apa pun penggunaan nyata yang muncul. Buka Diskusi atau Isu — itulah yang mengarahkan rilis berikutnya. Setiap rilis, dengan catatan migrasinya, ada di CHANGELOG.

Standar kualitas: gerbang cakupan ketat per kelas di ≥90 % baris dan cabang (679 kelas, 99,6 % / 97,3 %) di 11.022 pengujian, dengan rendering diverifikasi terhadap perlengkapan kesetiaan piksel matplotlib.


Dokumentasi


Paket

PaketInstalasiFungsinya
MatPlotLibNetdotnet add package MatPlotLibNetInti: model, API lancar, rendering SVG, JSON, transformasi
MatPlotLibNet.DataFramedotnet add package MatPlotLibNet.DataFrameMetode ekstensi Microsoft.Data.Analysis.DataFrame — plot, indikator (SMA/EMA/RSI/MACD/…), dan regresi polinomial dari kolom bernama
MatPlotLibNet.Skiadotnet add package MatPlotLibNet.SkiaEkspor PNG, PDF, dan GIF animasi melalui SkiaSharp
MatPlotLibNet.Blazordotnet add package MatPlotLibNet.BlazorKomponen Razor MplChart + MplLiveChart dengan SignalR
MatPlotLibNet.AspNetCoredotnet add package MatPlotLibNet.AspNetCoreTitik akhir REST, hub SignalR, IChartPublisher
MatPlotLibNet.Interactivedotnet add package MatPlotLibNet.Interactivefigure.ShowAsync() — popup peramban, tanpa server diperlukan
MatPlotLibNet.GraphQLdotnet add package MatPlotLibNet.GraphQLKueri GraphQL + langganan melalui HotChocolate
MatPlotLibNet.Mauidotnet add package MatPlotLibNet.MauiMplChartView asli melalui Microsoft.Maui.Graphics
MatPlotLibNet.Avaloniadotnet add package MatPlotLibNet.AvaloniaMplChartControl asli untuk Avalonia 12 — backend Skia, interaksi lokal opsional
MatPlotLibNet.Unodotnet add package MatPlotLibNet.UnoMplChartElement asli untuk Uno Platform (WinUI 3 / Android / iOS / macCatalyst)
MatPlotLibNet.Wpfdotnet add package MatPlotLibNet.WpfMplChartControl WPF asli melalui SkiaSharp — semua 9 pengubah interaksi
MatPlotLibNet.Geodotnet add package MatPlotLibNet.Geo13 proyeksi peta, pengurai GeoJSON, data Natural Earth 110m, poligon geografis
MatPlotLibNet.Notebooks#r "nuget: MatPlotLibNet.Notebooks"SVG sebaris di buku catatan Polyglot / Jupyter
MatPlotLibNet.Mcpdnx MatPlotLibNet.McpServer MCP — agen AI merender bagan melalui stdio (buku resep)
@matplotlibnet/angularnpm install @matplotlibnet/angularKomponen Angular + klien SignalR TypeScript
@matplotlibnet/reactnpm install @matplotlibnet/reactHook React + komponen + klien SignalR TypeScript
@matplotlibnet/vuenpm install @matplotlibnet/vueKomposabel Vue 3 + klien SignalR TypeScript

Mulai cepat

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");

Fitur

83 jenis deret — garis, sebar, batang, histogram, pai, kotak, biola, peta panas, kontur, kandil, OHLC, treemap, sunburst, Sankey, polar, peta panas polar, permukaan 3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D, Contour3D, Quiver3D, Voxels, Text3D, radar, air terjun, corong, pengukur, ubin statistik (KPI nilai tunggal), linimasa status (segmen status diskret dari waktu ke waktu), kisi pasangan, grafik rotasi relatif, garis/sebar/sinyal/kandil streaming, dan lainnya.

Server MCP — bagan untuk agen AIMatPlotLibNet.Mcp adalah server Model Context Protocol, dikirim sebagai alat .NET yang dijalankan host melalui stdio. Empat alat: render_chart (PNG plus ringkasan teks dari apa yang digambar), save_chart (PNG/SVG/PDF ke file, mengembalikan jalur yang ditulisnya), list_chart_types dan describe_chart_schema. Spesifikasinya adalah JSON figur milik pustaka itu sendiri, jadi apa pun yang digambar pustaka, agen dapat memintanya — dan server menolak spesifikasi yang salah berdasarkan nama bidang sebelum merender, alih-alih mengembalikan gambar kosong. Lihat buku resep.

{ "servers": { "MatPlotLibNet.Mcp": { "type": "stdio", "command": "dnx", "args": ["MatPlotLibNet.Mcp", "--yes"] } } }

Ruang kendaliPlt.OpsDashboard() menyusun satu layar operator: ubin KPI di bagian atas, linimasa status di bawahnya, dan panel tren bersama, semuanya disematkan ke satu jendela waktu yang disuplai pemanggil (pustaka tidak pernah membaca jam dinding). Ubin membawa Target, Caption multi-baris yang membungkus, sparkline sebaris dan Hatch yang berarti tanpa informasi; Theme.Alarm menamai warna alarm cadangan dan empat latar belakang operator disertakan dengannya. BulletGraphSeries menggantikan pengukur radial.

Kontrol UI asliMplChartControl untuk Avalonia 12 dan MplChartElement untuk Uno Platform merender bagan secara asli melalui SkiaSharp — tanpa peramban, tanpa WebView, tanpa SignalR yang diperlukan. 9 pengubah interaksi: geser (seret), zoom (gulir), rotasi 3D (seret kanan), zoom persegi panjang (Ctrl+seret), pilih kuas (Shift+seret), pilih rentang (Alt+seret), alih legenda (klik), crosshair (pasif), tooltip arahkan. Model status bilah alat, riwayat tampilan (mundur/maju), kursor data (klik-untuk-sematan), pencerminan tanda centang, margin ketat.

MathText — matematika sebaris bergaya LaTeX di label atau judul apa pun: $\alpha^{2}$, $\frac{a}{b}$, $\sqrt{x}$, $\hat{x}$, $\mathbf{F}$, $\mathbb{R}$. 96 pemetaan simbol (Yunani, operator matematika, panah, relasi, himpunan/logika, huruf tebal papan tulis), pecahan, akar kuadrat, aksen, varian font, spasi, dan pembatas penskalaan.

Bagan 3-D — 12 jenis deret: Surface, Scatter3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D (Delaunay), Contour3D (kotak berbaris), Quiver3D (medan vektor), Voxels (kubus pemotongan muka), Text3D (anotasi). Pipeline Projection3D penuh, algoritma pelukis DepthQueue3D, bayangan berbasis ekstensi Vec3.FaceNormal + Color.Shade()/Color.Modulate(), rotasi sisi klien Svg3DRotationScript dengan pengurutan ulang kedalaman, muka belakang yang diturunkan kamera (CubeFaceSelection — panel, tepi kubus, kisi dinding, dan baris tanda centang mengikuti kamera di azimuth mana pun, di sisi server dan selama seret), Pane3DConfig yang dapat dikonfigurasi (warna lantai/dinding), dan dukungan colorbar 3D.

Streaming & Waktu NyataStreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries didukung oleh DoubleRingBuffer dengan AppendPoint(x, y). StreamingFigure menyediakan render ulang yang dibatasi dan sumbu penskalaan otomatis (SlidingWindow, StickyRight, AutoScale). 11 indikator streaming (SMA, EMA, RSI, Bollinger, MACD, OBV, ATR, Stochastic, WilliamsR, CCI, VWAP) menempel otomatis ke data kandil. Kontrol streaming untuk Avalonia, Uno, MAUI, Blazor, dan ASP.NET Core. Mesin diff SVG untuk optimasi bandwidth. Adaptor Rx IObservable<T>.

Proyeksi geografis — paket MatPlotLibNet.Geo dengan 5 proyeksi peta (PlateCarree, Mercator, Robinson, Orthographic, LambertConformal), pengurai GeoJSON, data Natural Earth 110m tertanam, dan GeoPolygonSeries untuk garis pantai/batas/choropleth. Skala sumbu symlog untuk data yang mencakup rentang positif dan negatif.

SignalR dua arah — bagan interaktif berotoritas server dengan peristiwa mutasi (zoom, geser, atur ulang, alih legenda) dan peristiwa notifikasi (pilih kuas, arahkan). Hierarki peristiwa rekaman bertumpuk, penggabungan alami, respons arahkan per pemanggil.

142 peta warna — viridis, plasma, turbo, coolwarm, dan 138 lainnya (71 peta dasar, masing-masing dengan varian _r terbalik yang terdaftar otomatis). Numerik SIMD bergaya NumPy (Vec, Mat, Linalg, Fft). Aksesibilitas (ARIA, keyboard, palet Okabe-Ito, tema kontras tinggi). Tema mirip Matplotlib. Integrasi DataFrame dengan 53 indikator teknis. Sumbu terputus. Ekspor SVG/PNG/PDF/GIF berkualitas publikasi.


Lisensi

MIT — gratis untuk penggunaan apa pun, sumber terbuka atau komersial, tanpa ketentuan copyleft.