MatPlotLibNet
resmiBerikan 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_chartdan dapatkan PNG beserta ringkasan teks tentang apa yang digambar. - Simpan grafik ke file — Gunakan
save_chartuntuk mengekspor grafik sebagai PNG, SVG, atau PDF dan terima jalur file yang ditulis. - Temukan kemampuan grafik — Tanyakan
list_chart_typesuntuk 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_schemasaat 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.
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
- Wiki — memulai, lembar contekan, semua 83 jenis bagan, ruang kendali, gaya, streaming, SignalR, paket
- Buku resep — contoh salin-tempel dengan keluaran yang dirender
- Taman bermain — coba bagan langsung di peramban
- Referensi API — dibuat dari dokumen XML
- Tolok ukur · Kebijakan cakupan · CHANGELOG
Paket
| Paket | Instalasi | Fungsinya |
|---|---|---|
| MatPlotLibNet | dotnet add package MatPlotLibNet | Inti: model, API lancar, rendering SVG, JSON, transformasi |
| MatPlotLibNet.DataFrame | dotnet add package MatPlotLibNet.DataFrame | Metode ekstensi Microsoft.Data.Analysis.DataFrame — plot, indikator (SMA/EMA/RSI/MACD/…), dan regresi polinomial dari kolom bernama |
| MatPlotLibNet.Skia | dotnet add package MatPlotLibNet.Skia | Ekspor PNG, PDF, dan GIF animasi melalui SkiaSharp |
| MatPlotLibNet.Blazor | dotnet add package MatPlotLibNet.Blazor | Komponen Razor MplChart + MplLiveChart dengan SignalR |
| MatPlotLibNet.AspNetCore | dotnet add package MatPlotLibNet.AspNetCore | Titik akhir REST, hub SignalR, IChartPublisher |
| MatPlotLibNet.Interactive | dotnet add package MatPlotLibNet.Interactive | figure.ShowAsync() — popup peramban, tanpa server diperlukan |
| MatPlotLibNet.GraphQL | dotnet add package MatPlotLibNet.GraphQL | Kueri GraphQL + langganan melalui HotChocolate |
| MatPlotLibNet.Maui | dotnet add package MatPlotLibNet.Maui | MplChartView asli melalui Microsoft.Maui.Graphics |
| MatPlotLibNet.Avalonia | dotnet add package MatPlotLibNet.Avalonia | MplChartControl asli untuk Avalonia 12 — backend Skia, interaksi lokal opsional |
| MatPlotLibNet.Uno | dotnet add package MatPlotLibNet.Uno | MplChartElement asli untuk Uno Platform (WinUI 3 / Android / iOS / macCatalyst) |
| MatPlotLibNet.Wpf | dotnet add package MatPlotLibNet.Wpf | MplChartControl WPF asli melalui SkiaSharp — semua 9 pengubah interaksi |
| MatPlotLibNet.Geo | dotnet add package MatPlotLibNet.Geo | 13 proyeksi peta, pengurai GeoJSON, data Natural Earth 110m, poligon geografis |
| MatPlotLibNet.Notebooks | #r "nuget: MatPlotLibNet.Notebooks" | SVG sebaris di buku catatan Polyglot / Jupyter |
| MatPlotLibNet.Mcp | dnx MatPlotLibNet.Mcp | Server MCP — agen AI merender bagan melalui stdio (buku resep) |
| @matplotlibnet/angular | npm install @matplotlibnet/angular | Komponen Angular + klien SignalR TypeScript |
| @matplotlibnet/react | npm install @matplotlibnet/react | Hook React + komponen + klien SignalR TypeScript |
| @matplotlibnet/vue | npm install @matplotlibnet/vue | Komposabel 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 AI — MatPlotLibNet.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 kendali — Plt.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 asli — MplChartControl 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 Nyata — StreamingLineSeries, 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.