MatPlotLibNet

resmi

Ona 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şturmarender_chart ile bir grafik isteyin ve çizilenlerin PNG görüntüsünü ve metin özetini alın.
  • Grafikleri dosyalara kaydetmesave_chart kullanarak bir grafiği PNG, SVG veya PDF olarak dışa aktarın ve yazılan dosya yolunu alın.
  • Grafik yeteneklerini keşfetmelist_chart_types sorgusuyla ç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_schema ile 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.

CI NuGet NuGet Downloads License: MIT GitHub stars

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


Paketler

PaketKurulumNe yapar
MatPlotLibNetdotnet add package MatPlotLibNetÇekirdek: modeller, akıcı API, SVG işleme, JSON, dönüşümler
MatPlotLibNet.DataFramedotnet add package MatPlotLibNet.DataFrameMicrosoft.Data.Analysis.DataFrame uzantı yöntemleri — adlandırılmış sütunlardan grafik, göstergeler (SMA/EMA/RSI/MACD/…) ve polinom regresyonu
MatPlotLibNet.Skiadotnet add package MatPlotLibNet.SkiaSkiaSharp aracılığıyla PNG, PDF ve animasyonlu GIF dışa aktarımı
MatPlotLibNet.Blazordotnet add package MatPlotLibNet.BlazorMplChart + MplLiveChart SignalR ile Razor bileşenleri
MatPlotLibNet.AspNetCoredotnet add package MatPlotLibNet.AspNetCoreREST uç noktaları, SignalR hub'ı, IChartPublisher
MatPlotLibNet.Interactivedotnet add package MatPlotLibNet.Interactivefigure.ShowAsync() — tarayıcı açılır penceresi, sunucu gerekmez
MatPlotLibNet.GraphQLdotnet add package MatPlotLibNet.GraphQLHotChocolate aracılığıyla GraphQL sorguları + abonelikler
MatPlotLibNet.Mauidotnet add package MatPlotLibNet.MauiMicrosoft.Maui.Graphics aracılığıyla yerel MplChartView
MatPlotLibNet.Avaloniadotnet add package MatPlotLibNet.AvaloniaAvalonia 12 için yerel MplChartControl — Skia arka ucu, isteğe bağlı yerel etkileşim
MatPlotLibNet.Unodotnet add package MatPlotLibNet.UnoUno Platform için yerel MplChartElement (WinUI 3 / Android / iOS / macCatalyst)
MatPlotLibNet.Wpfdotnet add package MatPlotLibNet.WpfSkiaSharp aracılığıyla yerel WPF MplChartControl — 9 etkileşim değiştiricisinin tümü
MatPlotLibNet.Geodotnet add package MatPlotLibNet.Geo13 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.Mcpdnx MatPlotLibNet.McpMCP sunucusu — bir yapay zeka ajanı stdio üzerinden grafik oluşturur (yemek kitabı)
@matplotlibnet/angularnpm install @matplotlibnet/angularAngular bileşenleri + TypeScript SignalR istemcisi
@matplotlibnet/reactnpm install @matplotlibnet/reactReact kancaları + bileşenler + TypeScript SignalR istemcisi
@matplotlibnet/vuenpm install @matplotlibnet/vueVue 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 grafiklerMatPlotLibNet.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 kontrolleriMplChartControl 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.