MatPlotLibNet
आधिकारिकचार्ट के लिए JSON दें और यह एक PNG रेंडर करता है जिसे मॉडल वास्तव में देख सकता है — 83 चार्ट प्रकार, SVG और PDF फ़ाइल में लिखे जाते हैं, जो .NET टूल के रूप में स्थानीय रूप से चलता है।
MatPlotLibNet MCP के साथ आप क्या कर सकते हैं?
- JSON स्पेक्स से चार्ट रेंडर करें —
render_chartके माध्यम से चार्ट का अनुरोध करें और PNG के साथ-साथ बनाए गए चार्ट का टेक्स्ट सारांश प्राप्त करें। - चार्ट को फ़ाइलों में सहेजें —
save_chartका उपयोग करके चार्ट को PNG, SVG, या PDF के रूप में निर्यात करें और लिखी गई फ़ाइल का पथ प्राप्त करें। - चार्ट क्षमताओं की खोज करें — सभी 83 समर्थित सीरीज़ प्रकारों को देखने के लिए
list_chart_typesक्वेरी करें, लाइन प्लॉट से लेकर 3D सतहों तक। - चार्ट स्कीमा सत्यापित करें — जब चार्ट स्पेसिफिकेशन गलत हो, तो
describe_chart_schemaसे फ़ील्ड-स्तरीय त्रुटि फीडबैक प्राप्त करें।
दस्तावेज़
MatPlotLibNet
.NET 10 / .NET 8 चार्टिंग लाइब्रेरी जो matplotlib से प्रेरित है: फ्लूएंट API, DI-अनुकूल,
सर्वर-साइड SVG / PNG / PDF / एनिमेटेड-GIF निर्यात, एक MCP सर्वर ताकि एक AI एजेंट इससे चित्र बना सके, और 83 सीरीज़ प्रकार। 13 मानचित्र प्रक्षेपण और एम्बेडेड
Natural Earth डेटा, 30 थीम, LaTeX-शैली MathText, O(1) स्ट्रीमिंग 53 तकनीकी संकेतकों के साथ, एक कंट्रोल रूम
(Plt.OpsDashboard() — KPI टाइलें, स्थिति टाइमलाइन, एक साझा ट्रेंड विंडो), और Blazor, WPF,
MAUI, Avalonia, Uno और ASP.NET Core के लिए नेटिव कंट्रोल, साथ ही Angular, React और Vue के लिए TypeScript क्लाइंट। कोई JavaScript फ्रेमवर्क नहीं,
कोई WebView नहीं, कोई SaaS नहीं।
यह कहाँ जा रहा है
1.15 लाइन लाइब्रेरी को एजेंटों के लिए खोलती है: MatPlotLibNet.Mcp एक Model Context Protocol सर्वर है, इसलिए एक
मॉडल इनमें से किसी भी चार्ट प्रकार को JSON स्पेक से रेंडर कर सकता है और परिणाम देख सकता है — और जब स्पेक सही नहीं होता है तो उसे बताया जाता है कि कौन सा फ़ील्ड गलत है।
इससे पहले की 1.14 लाइन कंट्रोल-रूम का काम थी: Plt.OpsDashboard() और टाइल एनाटॉमी इसके साथ आए,
और उसके बाद के रिलीज़ वे फिक्स और एक्सटेंशन हैं जो एक लाइव ऑपरेटर वॉल ने मांगे — एक द्वितीयक Y अक्ष जो
पूर्ण नागरिक है, स्ट्रीमिंग जो SVG में खींचती है, 3-D अक्ष शीर्षक जो अपने लेबल साफ़ करते हैं, टाइल कैप्शन जो
लपेटते हैं और अपनी टाइल के अंदर रहते हैं, और एक ऑप्स विंडो जिसके टिक समय के रूप में पढ़े जाते हैं।
उसके बाद की गति समुदाय-संचालित है: बग फिक्स, दस्तावेज़ीकरण, और जो कुछ भी वास्तविक उपयोग सामने आता है। एक Discussion या एक Issue खोलें — यही अगले रिलीज़ को दिशा देता है। हर रिलीज़, अपने माइग्रेशन नोट्स के साथ, CHANGELOG में है।
गुणवत्ता मानक: प्रति-क्लास कवरेज गेट ≥90% लाइन और ब्रांच (679 क्लास, 99.6% / 97.3%) पर 11,022 परीक्षणों में, रेंडरिंग को matplotlib पिक्सेल-फिडेलिटी फिक्स्चर के खिलाफ सत्यापित किया गया है।
दस्तावेज़ीकरण
- Wiki — आरंभ करना, चीटशीट, सभी 83 चार्ट प्रकार, कंट्रोल रूम, स्टाइलिंग, स्ट्रीमिंग, SignalR, पैकेज
- Cookbook — रेंडर किए गए आउटपुट के साथ कॉपी-पेस्ट उदाहरण
- Playground — ब्राउज़र में लाइव चार्ट आज़माएं
- API Reference — XML दस्तावेज़ों से उत्पन्न
- Benchmarks · Coverage policy · CHANGELOG
पैकेज
| पैकेज | इंस्टॉल | यह क्या करता है |
|---|---|---|
| MatPlotLibNet | dotnet add package MatPlotLibNet | कोर: मॉडल, फ्लूएंट API, SVG रेंडरिंग, JSON, ट्रांसफॉर्म |
| MatPlotLibNet.DataFrame | dotnet add package MatPlotLibNet.DataFrame | Microsoft.Data.Analysis.DataFrame एक्सटेंशन विधियाँ — नामित कॉलम से प्लॉट, संकेतक (SMA/EMA/RSI/MACD/…) और बहुपद प्रतिगमन |
| MatPlotLibNet.Skia | dotnet add package MatPlotLibNet.Skia | SkiaSharp के माध्यम से PNG, PDF और एनिमेटेड GIF निर्यात |
| MatPlotLibNet.Blazor | dotnet add package MatPlotLibNet.Blazor | MplChart + MplLiveChart SignalR के साथ Razor घटक |
| MatPlotLibNet.AspNetCore | dotnet add package MatPlotLibNet.AspNetCore | REST एंडपॉइंट, SignalR हब, IChartPublisher |
| MatPlotLibNet.Interactive | dotnet add package MatPlotLibNet.Interactive | figure.ShowAsync() — ब्राउज़र पॉपअप, कोई सर्वर आवश्यक नहीं |
| MatPlotLibNet.GraphQL | dotnet add package MatPlotLibNet.GraphQL | HotChocolate के माध्यम से GraphQL क्वेरी + सब्सक्रिप्शन |
| MatPlotLibNet.Maui | dotnet add package MatPlotLibNet.Maui | Microsoft.Maui.Graphics के माध्यम से नेटिव MplChartView |
| MatPlotLibNet.Avalonia | dotnet add package MatPlotLibNet.Avalonia | Avalonia 12 के लिए नेटिव MplChartControl — Skia बैकएंड, वैकल्पिक स्थानीय इंटरैक्शन |
| MatPlotLibNet.Uno | dotnet add package MatPlotLibNet.Uno | Uno Platform के लिए नेटिव MplChartElement (WinUI 3 / Android / iOS / macCatalyst) |
| MatPlotLibNet.Wpf | dotnet add package MatPlotLibNet.Wpf | SkiaSharp के माध्यम से नेटिव WPF MplChartControl — सभी 9 इंटरैक्शन मॉडिफायर |
| MatPlotLibNet.Geo | dotnet add package MatPlotLibNet.Geo | 13 मानचित्र प्रक्षेपण, GeoJSON पार्सर, Natural Earth 110m डेटा, भौगोलिक बहुभुज |
| MatPlotLibNet.Notebooks | #r "nuget: MatPlotLibNet.Notebooks" | Polyglot / Jupyter नोटबुक में इनलाइन SVG |
| MatPlotLibNet.Mcp | dnx MatPlotLibNet.Mcp | MCP सर्वर — एक AI एजेंट stdio पर चार्ट रेंडर करता है (cookbook) |
| @matplotlibnet/angular | npm install @matplotlibnet/angular | Angular घटक + TypeScript SignalR क्लाइंट |
| @matplotlibnet/react | npm install @matplotlibnet/react | React हुक + घटक + TypeScript SignalR क्लाइंट |
| @matplotlibnet/vue | npm install @matplotlibnet/vue | Vue 3 कंपोज़ेबल + TypeScript SignalR क्लाइंट |
त्वरित आरंभ
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");
विशेषताएँ
83 सीरीज़ प्रकार — लाइन, स्कैटर, बार, हिस्टोग्राम, पाई, बॉक्स, वायलिन, हीटमैप, कंटूर, कैंडलस्टिक, OHLC, ट्रीमैप, सनबर्स्ट, सैंकी, पोलर, पोलर हीटमैप, 3D सतह, Bar3D, PlanarBar3D, Line3D, Trisurf3D, Contour3D, Quiver3D, Voxels, Text3D, रडार, वॉटरफॉल, फ़नल, गेज, स्टेट टाइल (एकल-मान KPI), स्टेट टाइमलाइन (समय के साथ असतत स्टेट सेगमेंट), पेयर ग्रिड, सापेक्ष रोटेशन ग्राफ़, स्ट्रीमिंग लाइन/स्कैटर/सिग्नल/कैंडलस्टिक, और अधिक।
MCP सर्वर — एक AI एजेंट के लिए चार्ट — MatPlotLibNet.Mcp एक
Model Context Protocol सर्वर है, जो एक .NET टूल के रूप में भेजा जाता है जिसे एक होस्ट stdio पर शुरू करता है। चार टूल: render_chart (PNG प्लस जो खींचा गया था उसका टेक्स्ट सारांश), save_chart (PNG/SVG/PDF एक फ़ाइल में, जो पथ लिखा गया था उसे लौटाता है), list_chart_types और
describe_chart_schema। स्पेक लाइब्रेरी का अपना फिगर JSON है, इसलिए लाइब्रेरी जो कुछ भी खींचती है, एक एजेंट
उसे मांग सकता है — और सर्वर एक गलत स्पेक को रेंडर करने से पहले फ़ील्ड नाम से अस्वीकार कर देता है, बजाय एक खाली
चित्र लौटाने के। cookbook देखें।
{ "servers": { "MatPlotLibNet.Mcp": { "type": "stdio", "command": "dnx", "args": ["MatPlotLibNet.Mcp", "--yes"] } } }
कंट्रोल रूम — Plt.OpsDashboard() एक ऑपरेटर स्क्रीन बनाता है: शीर्ष पर KPI टाइलें, उनके नीचे स्टेट टाइमलाइन, और एक साझा ट्रेंड पैनल, सभी एक कॉलर-आपूर्ति समय विंडो से जुड़े (लाइब्रेरी कभी भी दीवार घड़ी नहीं पढ़ती)। टाइल एक Target, एक लपेटने वाला बहु-पंक्ति Caption, एक इनलाइन स्पार्कलाइन और एक Hatch रखती है जिसका अर्थ है कोई जानकारी नहीं; Theme.Alarm आरक्षित अलार्म रंगों का नाम देता है और चार ऑपरेटर पृष्ठभूमि इसके साथ आती हैं। BulletGraphSeries रेडियल गेज को बदल देता है।
नेटिव UI कंट्रोल — MplChartControl Avalonia 12 के लिए और MplChartElement Uno Platform के लिए SkiaSharp के माध्यम से चार्ट नेटिव रूप से रेंडर करते हैं — कोई ब्राउज़र, कोई WebView, कोई SignalR आवश्यक नहीं। 9 इंटरैक्शन मॉडिफायर: पैन (ड्रैग), ज़ूम (स्क्रॉल), 3D रोटेशन (राइट-ड्रैग), आयत ज़ूम (Ctrl+ड्रैग), ब्रश चयन (Shift+ड्रैग), स्पैन चयन (Alt+ड्रैग), लीजेंड टॉगल (क्लिक), क्रॉसहेयर (निष्क्रिय), होवर टूलटिप। टूलबार स्टेट मॉडल, व्यू हिस्ट्री (बैक/फॉरवर्ड), डेटा कर्सर (क्लिक-टू-पिन), टिक मिररिंग, टाइट मार्जिन।
MathText — किसी भी लेबल या शीर्षक में LaTeX-जैसा इनलाइन गणित: $\alpha^{2}$, $\frac{a}{b}$, $\sqrt{x}$, $\hat{x}$, $\mathbf{F}$, $\mathbb{R}$। 96 प्रतीक मैपिंग (ग्रीक, गणित ऑपरेटर, तीर, संबंध, सेट/तर्क, ब्लैकबोर्ड बोल्ड), भिन्न, वर्गमूल, उच्चारण, फ़ॉन्ट वेरिएंट, स्पेसिंग और स्केलिंग सीमांकक।
3-D चार्ट — 12 सीरीज़ प्रकार: Surface, Scatter3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D (Delaunay), Contour3D (marching squares), Quiver3D (वेक्टर फ़ील्ड), Voxels (फेस-कल्ड क्यूब्स), Text3D (एनोटेशन)। पूर्ण Projection3D पाइपलाइन, DepthQueue3D पेंटर का एल्गोरिदम, Vec3.FaceNormal + Color.Shade()/Color.Modulate() एक्सटेंशन-आधारित शेडिंग, Svg3DRotationScript क्लाइंट-साइड रोटेशन गहराई पुनः-क्रमबद्धता के साथ, कैमरा-व्युत्पन्न पीछे के चेहरे (CubeFaceSelection — पैन, क्यूब किनारे, दीवार ग्रिड और टिक पंक्तियाँ किसी भी अज़ीमुथ पर कैमरे का अनुसरण करती हैं, सर्वर-साइड और ड्रैग के दौरान), कॉन्फ़िगर करने योग्य Pane3DConfig (फर्श/दीवार रंग), और 3D कलरबार समर्थन।
स्ट्रीमिंग और रीयलटाइम — StreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries DoubleRingBuffer द्वारा समर्थित AppendPoint(x, y) के साथ। StreamingFigure थ्रॉटल किए गए पुनः-रेंडरिंग और ऑटो-स्केलिंग अक्ष प्रदान करता है (SlidingWindow, StickyRight, AutoScale)। 11 स्ट्रीमिंग संकेतक (SMA, EMA, RSI, Bollinger, MACD, OBV, ATR, Stochastic, WilliamsR, CCI, VWAP) स्वचालित रूप से कैंडलस्टिक डेटा से जुड़ते हैं। Avalonia, Uno, MAUI, Blazor और ASP.NET Core के लिए स्ट्रीमिंग कंट्रोल। बैंडविड्थ अनुकूलन के लिए SVG डिफ़ इंजन। Rx IObservable<T> एडाप्टर।
भौगोलिक प्रक्षेपण — MatPlotLibNet.Geo पैकेज 5 मानचित्र प्रक्षेपण (PlateCarree, Mercator, Robinson, Orthographic, LambertConformal), GeoJSON पार्सर, Natural Earth 110m एम्बेडेड डेटा, और तटरेखाओं/सीमाओं/कोरोप्लेथ के लिए GeoPolygonSeries के साथ। सकारात्मक और नकारात्मक श्रेणियों में फैले डेटा के लिए Symlog अक्ष स्केल।
द्विदिश SignalR — सर्वर-प्राधिकृत इंटरैक्टिव चार्ट म्यूटेशन इवेंट (ज़ूम, पैन, रीसेट, लीजेंड टॉगल) और अधिसूचना इवेंट (ब्रश-चयन, होवर) के साथ। स्टैक्ड-रिकॉर्ड इवेंट पदानुक्रम, प्राकृतिक समेकन, प्रति-कॉलर होवर प्रतिक्रियाएँ।
142 कोलोरमैप — viridis, plasma, turbo, coolwarm, और 138 और (71 बेस मैप, प्रत्येक स्वचालित-पंजीकृत उल्टे _r वेरिएंट के साथ)। NumPy-शैली SIMD संख्यात्मक (Vec, Mat, Linalg, Fft)। पहुंच-योग्यता (ARIA, कीबोर्ड, Okabe-Ito पैलेट, उच्च-कंट्रास्ट थीम)। Matplotlib लुक-अलाइक थीम। 53 तकनीकी संकेतकों के साथ DataFrame एकीकरण। टूटे हुए अक्ष। प्रकाशन-गुणवत्ता SVG/PNG/PDF/GIF निर्यात।
लाइसेंस
MIT — किसी भी उपयोग के लिए मुफ्त, ओपन-सोर्स या वाणिज्यिक, बिना किसी कॉपीलेफ्ट शर्तों के।