MatPlotLibNet

chính thức

Đưa cho nó JSON của một biểu đồ và nó sẽ kết xuất PNG mà mô hình thực sự có thể xem — 83 loại biểu đồ, SVG và PDF được ghi vào tệp, chạy cục bộ như một công cụ .NET.

GitHub
14
Dùng thử MCP nàyĐược tài trợ

Bạn có thể làm gì với MatPlotLibNet MCP?

  • Từ JSON spec kết xuất biểu đồ — Yêu cầu biểu đồ qua render_chart và nhận về PNG cùng bản tóm tắt văn bản về nội dung đã vẽ.
  • Lưu biểu đồ vào tệp — Dùng save_chart để xuất biểu đồ dưới dạng PNG, SVG hoặc PDF và nhận đường dẫn tệp đã ghi.
  • Khám phá khả năng biểu đồ — Truy vấn list_chart_types để xem tất cả 83 loại chuỗi dữ liệu được hỗ trợ, từ biểu đồ đường đến bề mặt 3D.
  • Xác thực lược đồ biểu đồ — Nhận phản hồi lỗi theo từng trường từ describe_chart_schema khi thông số kỹ thuật biểu đồ bị sai định dạng.

Tài liệu

MatPlotLibNet

Một thư viện vẽ biểu đồ .NET 10 / .NET 8 lấy cảm hứng từ matplotlib: API mượt mà, thân thiện với DI, xuất SVG / PNG / PDF / GIF động phía máy chủ, một máy chủ MCP để tác tử AI có thể vẽ bằng nó, và 83 loại chuỗi dữ liệu. Đi kèm 13 phép chiếu bản đồ và dữ liệu Natural Earth nhúng, 30 chủ đề, MathText kiểu LaTeX, phát trực tuyến O(1) với 53 chỉ báo kỹ thuật, một phòng điều khiển (Plt.OpsDashboard() — ô KPI, dòng thời gian trạng thái, một cửa sổ xu hướng dùng chung), và các điều khiển gốc cho Blazor, WPF, MAUI, Avalonia, Uno và ASP.NET Core, cùng với máy khách TypeScript cho Angular, React và Vue. Không có khung JavaScript, không WebView, không SaaS.

CI NuGet NuGet Downloads License: MIT GitHub stars

Hướng phát triển

Dòng 1.15 mở thư viện cho các tác tử: MatPlotLibNet.Mcp là một máy chủ Giao thức Ngữ cảnh Mô hình, để một mô hình có thể hiển thị bất kỳ loại biểu đồ nào trong số này từ một đặc tả JSON và xem kết quả — và được cho biết trường nào sai khi đặc tả không đúng.

Dòng 1.14 trước đó là công việc phòng điều khiển: Plt.OpsDashboard() và cấu trúc ô đã ra mắt cùng với nó, và các bản phát hành sau đó là các bản sửa lỗi và mở rộng mà một bức tường vận hành trực tiếp yêu cầu — trục Y phụ là một công dân đầy đủ, phát trực tuyến vẽ trong SVG, tiêu đề trục 3-D tự xóa nhãn của chúng, chú thích ô tự xuống dòng và nằm gọn trong ô của chúng, và một cửa sổ vận hành có vạch chia đọc theo thời gian.

Sau đó, nhịp độ do cộng đồng định hướng: sửa lỗi, tài liệu và bất cứ điều gì sử dụng thực tế xuất hiện. Mở một Thảo luận hoặc một Sự cố — đó là điều định hướng bản phát hành tiếp theo. Mọi bản phát hành, kèm ghi chú di chuyển, đều có trong CHANGELOG.

Tiêu chuẩn chất lượng: ngưỡng bao phủ nghiêm ngặt theo từng lớp ở mức ≥90 % dòng và nhánh (679 lớp, 99,6 % / 97,3 %) trên 11.022 bài kiểm tra, với kết xuất được xác minh dựa trên các tệp pixel-fidelity của matplotlib.


Tài liệu


Gói

GóiCài đặtChức năng
MatPlotLibNetdotnet add package MatPlotLibNetLõi: mô hình, API mượt mà, kết xuất SVG, JSON, phép biến đổi
MatPlotLibNet.DataFramedotnet add package MatPlotLibNet.DataFramePhương thức mở rộng Microsoft.Data.Analysis.DataFrame — vẽ biểu đồ, chỉ báo (SMA/EMA/RSI/MACD/…) và hồi quy đa thức từ các cột có tên
MatPlotLibNet.Skiadotnet add package MatPlotLibNet.SkiaXuất PNG, PDF và GIF động qua SkiaSharp
MatPlotLibNet.Blazordotnet add package MatPlotLibNet.BlazorThành phần Razor MplChart + MplLiveChart với SignalR
MatPlotLibNet.AspNetCoredotnet add package MatPlotLibNet.AspNetCoreĐiểm cuối REST, trung tâm SignalR, IChartPublisher
MatPlotLibNet.Interactivedotnet add package MatPlotLibNet.Interactivefigure.ShowAsync() — cửa sổ bật lên trình duyệt, không cần máy chủ
MatPlotLibNet.GraphQLdotnet add package MatPlotLibNet.GraphQLTruy vấn GraphQL + đăng ký qua HotChocolate
MatPlotLibNet.Mauidotnet add package MatPlotLibNet.MauiMplChartView gốc qua Microsoft.Maui.Graphics
MatPlotLibNet.Avaloniadotnet add package MatPlotLibNet.AvaloniaMplChartControl gốc cho Avalonia 12 — nền Skia, tương tác cục bộ tùy chọn
MatPlotLibNet.Unodotnet add package MatPlotLibNet.UnoMplChartElement gốc cho Nền tảng Uno (WinUI 3 / Android / iOS / macCatalyst)
MatPlotLibNet.Wpfdotnet add package MatPlotLibNet.WpfMplChartControl WPF gốc qua SkiaSharp — tất cả 9 bổ trợ tương tác
MatPlotLibNet.Geodotnet add package MatPlotLibNet.Geo13 phép chiếu bản đồ, trình phân tích GeoJSON, dữ liệu Natural Earth 110m, đa giác địa lý
MatPlotLibNet.Notebooks#r "nuget: MatPlotLibNet.Notebooks"SVG nội tuyến trong sổ ghi chép Polyglot / Jupyter
MatPlotLibNet.Mcpdnx MatPlotLibNet.McpMáy chủ MCP — tác tử AI kết xuất biểu đồ qua stdio (sách nấu ăn)
@matplotlibnet/angularnpm install @matplotlibnet/angularThành phần Angular + máy khách TypeScript SignalR
@matplotlibnet/reactnpm install @matplotlibnet/reactHook React + thành phần + máy khách TypeScript SignalR
@matplotlibnet/vuenpm install @matplotlibnet/vueComposable Vue 3 + máy khách TypeScript SignalR

Bắt đầu nhanh

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

Tính năng

83 loại chuỗi dữ liệu — đường, phân tán, cột, biểu đồ tần suất, bánh, hộp, violin, bản đồ nhiệt, đường viền, nến, OHLC, treemap, sunburst, Sankey, cực, bản đồ nhiệt cực, bề mặt 3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D, Contour3D, Quiver3D, Voxels, Text3D, radar, thác nước, phễu, đồng hồ đo, ô thống kê (KPI giá trị đơn), dòng thời gian trạng thái (phân đoạn trạng thái rời rạc theo thời gian), lưới cặp, đồ thị xoay tương đối, đường/phân tán/tín hiệu/nến phát trực tuyến, và nhiều hơn nữa.

Máy chủ MCP — biểu đồ cho tác tử AIMatPlotLibNet.Mcp là một máy chủ Giao thức Ngữ cảnh Mô hình, được phân phối dưới dạng công cụ .NET mà máy chủ khởi động qua stdio. Bốn công cụ: render_chart (PNG cộng với tóm tắt văn bản về những gì đã vẽ), save_chart (PNG/SVG/PDF vào tệp, trả về đường dẫn đã ghi), list_chart_typesdescribe_chart_schema. Đặc tả là JSON hình của chính thư viện, vì vậy bất cứ thứ gì thư viện vẽ, tác tử có thể yêu cầu — và máy chủ từ chối đặc tả sai theo tên trường trước khi kết xuất, thay vì trả về một bức tranh trống. Xem sách nấu ăn.

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

Phòng điều khiểnPlt.OpsDashboard() tạo một màn hình vận hành: ô KPI ở trên cùng, dòng thời gian trạng thái bên dưới chúng, và một bảng xu hướng dùng chung, tất cả được ghim vào một cửa sổ thời gian do người gọi cung cấp (thư viện không bao giờ đọc đồng hồ tường). Ô mang một Target, một Caption nhiều dòng tự xuống dòng, một sparkline nội tuyến và một Hatch có nghĩa là không có thông tin; Theme.Alarm đặt tên cho các màu báo động dành riêng và bốn nền vận hành đi kèm với nó. BulletGraphSeries thay thế đồng hồ đo xuyên tâm.

Điều khiển UI gốcMplChartControl cho Avalonia 12 và MplChartElement cho Nền tảng Uno kết xuất biểu đồ gốc qua SkiaSharp — không trình duyệt, không WebView, không cần SignalR. 9 bổ trợ tương tác: pan (kéo), thu phóng (cuộn), xoay 3D (kéo phải), thu phóng hình chữ nhật (Ctrl+kéo), chọn cọ (Shift+kéo), chọn khoảng (Alt+kéo), chuyển đổi chú giải (nhấp), crosshair (thụ động), chú giải công cụ khi di chuột. Mô hình trạng thái thanh công cụ, lịch sử xem (quay lại/tiến), con trỏ dữ liệu (nhấp để ghim), phản chiếu vạch chia, lề chặt.

MathText — toán nội tuyến kiểu LaTeX trong bất kỳ nhãn hoặc tiêu đề nào: $\alpha^{2}$, $\frac{a}{b}$, $\sqrt{x}$, $\hat{x}$, $\mathbf{F}$, $\mathbb{R}$. 96 ánh xạ ký hiệu (Hy Lạp, toán tử toán học, mũi tên, quan hệ, tập hợp/logic, bảng đen đậm), phân số, căn bậc hai, dấu phụ, biến thể phông chữ, khoảng cách và dấu phân cách tỷ lệ.

Biểu đồ 3-D — 12 loại chuỗi dữ liệu: Surface, Scatter3D, Bar3D, PlanarBar3D, Line3D, Trisurf3D (Delaunay), Contour3D (marching squares), Quiver3D (trường vectơ), Voxels (khối lập phương loại bỏ mặt), Text3D (chú thích). Đường ống Projection3D đầy đủ, thuật toán họa sĩ DepthQueue3D, tô bóng dựa trên phần mở rộng Vec3.FaceNormal + Color.Shade()/Color.Modulate(), xoay phía máy khách Svg3DRotationScript với sắp xếp lại độ sâu, mặt sau dẫn xuất từ camera (CubeFaceSelection — các khung, cạnh khối lập phương, lưới tường và hàng vạch chia theo camera ở bất kỳ góc phương vị nào, phía máy chủ và trong khi kéo), Pane3DConfig có thể cấu hình (màu sàn/tường) và hỗ trợ thanh màu 3D.

Phát trực tuyến & Thời gian thựcStreamingLineSeries, StreamingScatterSeries, StreamingSignalSeries, StreamingCandlestickSeries được hỗ trợ bởi DoubleRingBuffer với AppendPoint(x, y). StreamingFigure cung cấp kết xuất lại có giới hạn và trục tự chia tỷ lệ (SlidingWindow, StickyRight, AutoScale). 11 chỉ báo phát trực tuyến (SMA, EMA, RSI, Bollinger, MACD, OBV, ATR, Stochastic, WilliamsR, CCI, VWAP) tự động gắn vào dữ liệu nến. Điều khiển phát trực tuyến cho Avalonia, Uno, MAUI, Blazor và ASP.NET Core. Công cụ khác biệt SVG để tối ưu băng thông. Bộ chuyển đổi Rx IObservable<T>.

Phép chiếu địa lý — gói MatPlotLibNet.Geo với 5 phép chiếu bản đồ (PlateCarree, Mercator, Robinson, Orthographic, LambertConformal), trình phân tích GeoJSON, dữ liệu Natural Earth 110m nhúng và GeoPolygonSeries cho đường bờ biển/biên giới/choropleth. Thang trục Symlog cho dữ liệu trải dài phạm vi dương và âm.

SignalR hai chiều — biểu đồ tương tác có thẩm quyền máy chủ với sự kiện đột biến (thu phóng, pan, đặt lại, chuyển đổi chú giải) và sự kiện thông báo (chọn cọ, di chuột). Hệ thống phân cấp sự kiện bản ghi xếp chồng, hợp nhất tự nhiên, phản hồi di chuột theo từng người gọi.

142 bản đồ màu — viridis, plasma, turbo, coolwarm và 138 bản đồ khác (71 bản đồ cơ sở, mỗi bản đồ có biến thể _r đảo ngược tự đăng ký). Số học SIMD kiểu NumPy (Vec, Mat, Linalg, Fft). Khả năng truy cập (ARIA, bàn phím, bảng màu Okabe-Ito, chủ đề tương phản cao). Chủ đề giống matplotlib. Tích hợp DataFrame với 53 chỉ báo kỹ thuật. Trục bị gãy. Xuất SVG/PNG/PDF/GIF chất lượng xuất bản.


Giấy phép

MIT — miễn phí cho mọi mục đích sử dụng, mã nguồn mở hoặc thương mại, không có điều kiện copyleft.