MatPlotLibNet
resmiOna bir grafik için JSON verin, modelin gerçekten bakabileceği bir PNG oluşturur — 83 grafik türü, dosyaya yazılan SVG ve PDF, .NET aracı olarak yerel olarak çalışır.
MatPlotLibNet MCP ile neler yapabilirsiniz?
- JSON şemalarından grafik oluşturma —
render_chartile bir grafik isteyin ve çizilenlerin PNG görüntüsünü ve metin özetini alın. - Grafikleri dosyalara kaydetme —
save_chartkullanarak bir grafiği PNG, SVG veya PDF olarak dışa aktarın ve yazılan dosya yolunu alın. - Grafik yeteneklerini keşfetme —
list_chart_typessorgusuyla çizgi grafiklerden 3D yüzeylere kadar desteklenen 83 seri türünün tamamını görün. - Grafik şemalarını doğrulama — Bir grafik şeması hatalı olduğunda
describe_chart_schemaile alan düzeyinde hata geri bildirimi alın.
Dokümantasyon
MatPlotLibNet
.NET 10 / .NET 8 tabanlı, matplotlib esinli bir grafik kütüphanesi: akıcı API, DI dostu,
sunucu tarafı SVG / PNG / PDF / animasyonlu GIF dışa aktarımı, bir yapay zeka ajanının bununla çizim yapabilmesi için bir MCP sunucusu ve 83 seri türü. 13 harita projeksiyonu ve gömülü
Natural Earth verisi, 30 tema, LaTeX tarzı MathText, 53 teknik gösterge ile O(1) akış, bir kontrol odası
(Plt.OpsDashboard() — KPI karoları, durum zaman çizelgeleri, tek paylaşılan trend penceresi) ve Blazor, WPF,
MAUI, Avalonia, Uno ve ASP.NET Core için yerel kontroller ile Angular, React ve Vue için TypeScript istemcileri içerir. JavaScript çerçevesi yok,
WebView yok, SaaS yok.
Nereye gidiyor
1.15 sürümü kütüphaneyi ajanlara açıyor: MatPlotLibNet.Mcp bir Model Context Protocol sunucusudur, böylece bir
model bu grafik türlerinden herhangi birini bir JSON şemasından oluşturabilir ve sonuca bakabilir — ve şema doğru değilse hangi alanın yanlış olduğu söylenir.
Önceki 1.14 sürümü kontrol odası çalışmasıydı: Plt.OpsDashboard() ve karo anatomisi onunla geldi,
ve sonraki sürümler canlı bir operatör duvarının istediği düzeltmeler ve uzantılardır — tam bir vatandaş olan ikincil Y ekseni,
SVG'de çizen akış, kendi etiketlerini temizleyen 3B eksen başlıkları, kendi karo içinde kalan ve saran karo başlıkları,
ve tikleri zaman olarak okunan bir operasyon penceresi.
Sonrasında tempo topluluk odaklıdır: hata düzeltmeleri, dokümantasyon ve gerçek kullanımın ortaya çıkardığı her şey. Bir Tartışma veya bir Sorun açın — sonraki sürümü yönlendiren budur. Her sürüm, geçiş notlarıyla birlikte, CHANGELOG içindedir.
Kalite çıtası: 11.022 test boyunca 679 sınıfta ≥%90 satır ve dal kapsama kapısı (%99,6 / %97,3), matplotlib piksel doğruluğu fikstürlerine karşı doğrulanmış işleme ile.
Dokümantasyon
- Wiki — başlangıç, kopya kağıdı, 83 grafik türünün tamamı, kontrol odası, stil, akış, SignalR, paketler
- Yemek Kitabı — işlenmiş çıktıyla kopyala-yapıştır örnekler
- Oyun Alanı — grafikleri tarayıcıda canlı deneyin
- API Referansı — XML dokümanlarından üretilmiştir
- Kıyaslamalar · Kapsam politikası · CHANGELOG
Paketler
| Paket | Kurulum | Ne yapar |
|---|---|---|
| MatPlotLibNet | dotnet add package MatPlotLibNet | Çekirdek: modeller, akıcı API, SVG işleme, JSON, dönüşümler |
| MatPlotLibNet.DataFrame | dotnet add package MatPlotLibNet.DataFrame | Microsoft.Data.Analysis.DataFrame uzantı yöntemleri — adlandırılmış sütunlardan grafik, göstergeler (SMA/EMA/RSI/MACD/…) ve polinom regresyonu |
| MatPlotLibNet.Skia | dotnet add package MatPlotLibNet.Skia | SkiaSharp aracılığıyla PNG, PDF ve animasyonlu GIF dışa aktarımı |
| MatPlotLibNet.Blazor | dotnet add package MatPlotLibNet.Blazor | MplChart + MplLiveChart SignalR ile Razor bileşenleri |
| MatPlotLibNet.AspNetCore | dotnet add package MatPlotLibNet.AspNetCore | REST uç noktaları, SignalR hub'ı, IChartPublisher |
| MatPlotLibNet.Interactive | dotnet add package MatPlotLibNet.Interactive | figure.ShowAsync() — tarayıcı açılır penceresi, sunucu gerekmez |
| MatPlotLibNet.GraphQL | dotnet add package MatPlotLibNet.GraphQL | HotChocolate aracılığıyla GraphQL sorguları + abonelikler |
| MatPlotLibNet.Maui | dotnet add package MatPlotLibNet.Maui | Microsoft.Maui.Graphics aracılığıyla yerel MplChartView |
| MatPlotLibNet.Avalonia | dotnet add package MatPlotLibNet.Avalonia | Avalonia 12 için yerel MplChartControl — Skia arka ucu, isteğe bağlı yerel etkileşim |
| MatPlotLibNet.Uno | dotnet add package MatPlotLibNet.Uno | Uno Platform için yerel MplChartElement (WinUI 3 / Android / iOS / macCatalyst) |
| MatPlotLibNet.Wpf | dotnet add package MatPlotLibNet.Wpf | SkiaSharp aracılığıyla yerel WPF MplChartControl — 9 etkileşim değiştiricisinin tümü |
| MatPlotLibNet.Geo | dotnet add package MatPlotLibNet.Geo | 13 harita projeksiyonu, GeoJSON ayrıştırıcı, Natural Earth 110m verisi, coğrafi çokgenler |
| MatPlotLibNet.Notebooks | #r "nuget: MatPlotLibNet.Notebooks" | Polyglot / Jupyter not defterlerinde satır içi SVG |
| MatPlotLibNet.Mcp | dnx MatPlotLibNet.Mcp | MCP sunucusu — bir yapay zeka ajanı stdio üzerinden grafik oluşturur (yemek kitabı) |
| @matplotlibnet/angular | npm install @matplotlibnet/angular | Angular bileşenleri + TypeScript SignalR istemcisi |
| @matplotlibnet/react | npm install @matplotlibnet/react | React kancaları + bileşenler + TypeScript SignalR istemcisi |
| @matplotlibnet/vue | npm install @matplotlibnet/vue | Vue 3 composable'ları + TypeScript SignalR istemcisi |
Hızlı başlangıç
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");
Özellikler
83 seri türü — çizgi, dağılım, çubuk, histogram, pasta, kutu, keman, ısı haritası, kontur, şamdan, OHLC, ağaç haritası, güneş patlaması, Sankey, kutupsal, kutupsal ısı haritası, 3B yüzey, Bar3D, PlanarBar3D, Line3D, Trisurf3D, Contour3D, Quiver3D, Voxels, Text3D, radar, şelale, huni, gösterge, istatistik karosu (tek değerli KPI), durum zaman çizelgesi (zaman içinde ayrık durum bölümleri), çift ızgara, göreli dönüş grafiği, akış çizgisi/dağılım/sinyal/şamdan ve daha fazlası.
MCP sunucusu — yapay zeka ajanı için grafikler — MatPlotLibNet.Mcp bir
Model Context Protocol sunucusudur, bir ana bilgisayarın stdio üzerinden başlattığı bir .NET aracı olarak gönderilir. Dört araç: render_chart (PNG artı ne çizildiğinin metin özeti), save_chart (PNG/SVG/PDF'yi bir dosyaya yazar, yazdığı yolu döndürür), list_chart_types ve
describe_chart_schema. Şema, kütüphanenin kendi şekil JSON'udur, böylece kütüphanenin çizdiği her şeyi bir ajan
isteyebilir — ve sunucu, boş bir resim döndürmek yerine, işlemeden önce yanlış bir şemayı alan adıyla reddeder.
Yemek kitabına bakın.
{ "servers": { "MatPlotLibNet.Mcp": { "type": "stdio", "command": "dnx", "args": ["MatPlotLibNet.Mcp", "--yes"] } } }
Kontrol odası — Plt.OpsDashboard() tek bir operatör ekranı oluşturur: üstte KPI karoları, altlarında durum zaman çizelgeleri ve paylaşılan bir trend paneli, hepsi çağıran tarafından sağlanan tek bir zaman penceresine sabitlenmiştir (kütüphane duvar saatini asla okumaz). Karo bir Target, saran çok satırlı Caption, satır içi bir mini çizgi ve bilgi yok anlamına gelen bir Hatch taşır; Theme.Alarm ayrılmış alarm renklerini adlandırır ve onunla birlikte dört operatör arka planı gelir. BulletGraphSeries radyal göstergeyi değiştirir.
Yerel UI kontrolleri — MplChartControl Avalonia 12 için ve MplChartElement Uno Platform için grafikleri SkiaSharp aracılığıyla yerel olarak işler — tarayıcı, WebView veya SignalR gerekmez. 9 etkileşim değiştiricisi: kaydırma (sürükleme), yakınlaştırma (kaydırma), 3B döndürme (sağ tıklama sürükleme), dikdörtgen yakınlaştırma (Ctrl+sürükleme), fırça seçimi (Shift+sürükleme), aralık seçimi (Alt+sürükleme), gösterge değiştirme (tıklama), artı işareti (pasif), üzerine gelme araç ipucu. Araç çubuğu durum modeli, görünüm geçmişi (geri/ileri), veri imleci (tıklayarak sabitleme), tik yansıtma, sıkı kenar boşlukları.
MathText — herhangi bir etikette veya başlıkta LaTeX benzeri satır içi matematik: $\alpha^{2}$, $\frac{a}{b}$, $\sqrt{x}$, $\hat{x}$, $\mathbf{F}$, $\mathbb{R}$. 96 sembol eşlemesi (Yunanca, matematik operatörleri, oklar, ilişkiler, küme/mantık, tahta kalın), kesirler, karekökler, aksanlar, yazı tipi varyantları, boşluk ve ölçekleme sınırlayıcıları.
3B grafikler — 12 seri türü: Surface, Scatter3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D (Delaunay), Contour3D (yürüyen kareler), Quiver3D (vektör alanı), Voxels (yüz kırpılmış küpler), Text3D (açıklamalar). Tam Projection3D işlem hattı, DepthQueue3D ressam algoritması, Vec3.FaceNormal + Color.Shade()/Color.Modulate() uzantı tabanlı gölgelendirme, Svg3DRotationScript derinlik yeniden sıralamalı istemci tarafı döndürme, kameradan türetilen arka yüzler (CubeFaceSelection — paneller, küp kenarları, duvar ızgaraları ve tik satırları herhangi bir azimutta kamerayı takip eder, sunucu tarafında ve sürükleme sırasında), yapılandırılabilir Pane3DConfig (zemin/duvar renkleri) ve 3B renk çubuğu desteği.
Akış ve Gerçek Zamanlı — StreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries DoubleRingBuffer ile desteklenir ve AppendPoint(x, y) içerir. StreamingFigure kısıtlanmış yeniden işleme ve otomatik ölçeklenen eksenler sağlar (SlidingWindow, StickyRight, AutoScale). 11 akış göstergesi (SMA, EMA, RSI, Bollinger, MACD, OBV, ATR, Stochastic, WilliamsR, CCI, VWAP) şamdan verilerine otomatik olarak bağlanır. Avalonia, Uno, MAUI, Blazor ve ASP.NET Core için akış kontrolleri. Bant genişliği optimizasyonu için SVG fark motoru. Rx IObservable<T> bağdaştırıcısı.
Coğrafi projeksiyonlar — 5 harita projeksiyonu (PlateCarree, Mercator, Robinson, Orthographic, LambertConformal), GeoJSON ayrıştırıcı, Natural Earth 110m gömülü veri ve kıyı şeritleri/sınırlar/choropleth için GeoPolygonSeries içeren MatPlotLibNet.Geo paketi. Pozitif ve negatif aralıkları kapsayan veriler için Symlog eksen ölçeği.
Çift yönlü SignalR — mutasyon olayları (yakınlaştırma, kaydırma, sıfırlama, gösterge değiştirme) ve bildirim olayları (fırça seçimi, üzerine gelme) ile sunucu yetkili etkileşimli grafikler. Yığılmış kayıt olay hiyerarşisi, doğal birleştirme, çağıran başına üzerine gelme yanıtları.
142 renk haritası — viridis, plasma, turbo, coolwarm ve 138 tane daha (71 temel harita, her biri otomatik kayıtlı ters _r varyantıyla). NumPy tarzı SIMD sayısal işlemler (Vec, Mat, Linalg, Fft). Erişilebilirlik (ARIA, klavye, Okabe-Ito paleti, yüksek kontrast teması). Matplotlib benzeri temalar. 53 teknik gösterge ile DataFrame entegrasyonu. Kırık eksenler. Yayın kalitesinde SVG/PNG/PDF/GIF dışa aktarımı.
Lisans
MIT — açık kaynak veya ticari her türlü kullanım için ücretsiz, copyleft koşulları yoktur.