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.
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_chartvà 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_schemakhi 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.
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
- Wiki — bắt đầu, bảng tra cứu nhanh, tất cả 83 loại biểu đồ, phòng điều khiển, định kiểu, phát trực tuyến, SignalR, gói
- Sách nấu ăn — ví dụ sao chép-dán với đầu ra đã kết xuất
- Sân chơi — thử biểu đồ trực tiếp trong trình duyệt
- Tham chiếu API — được tạo từ tài liệu XML
- Điểm chuẩn · Chính sách bao phủ · CHANGELOG
Gói
| Gói | Cài đặt | Chức năng |
|---|---|---|
| MatPlotLibNet | dotnet add package MatPlotLibNet | Lõi: mô hình, API mượt mà, kết xuất SVG, JSON, phép biến đổi |
| MatPlotLibNet.DataFrame | dotnet add package MatPlotLibNet.DataFrame | Phươ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.Skia | dotnet add package MatPlotLibNet.Skia | Xuất PNG, PDF và GIF động qua SkiaSharp |
| MatPlotLibNet.Blazor | dotnet add package MatPlotLibNet.Blazor | Thành phần Razor MplChart + MplLiveChart với SignalR |
| MatPlotLibNet.AspNetCore | dotnet add package MatPlotLibNet.AspNetCore | Điểm cuối REST, trung tâm SignalR, IChartPublisher |
| MatPlotLibNet.Interactive | dotnet add package MatPlotLibNet.Interactive | figure.ShowAsync() — cửa sổ bật lên trình duyệt, không cần máy chủ |
| MatPlotLibNet.GraphQL | dotnet add package MatPlotLibNet.GraphQL | Truy vấn GraphQL + đăng ký qua HotChocolate |
| MatPlotLibNet.Maui | dotnet add package MatPlotLibNet.Maui | MplChartView gốc qua Microsoft.Maui.Graphics |
| MatPlotLibNet.Avalonia | dotnet add package MatPlotLibNet.Avalonia | MplChartControl gốc cho Avalonia 12 — nền Skia, tương tác cục bộ tùy chọn |
| MatPlotLibNet.Uno | dotnet add package MatPlotLibNet.Uno | MplChartElement gốc cho Nền tảng Uno (WinUI 3 / Android / iOS / macCatalyst) |
| MatPlotLibNet.Wpf | dotnet add package MatPlotLibNet.Wpf | MplChartControl WPF gốc qua SkiaSharp — tất cả 9 bổ trợ tương tác |
| MatPlotLibNet.Geo | dotnet add package MatPlotLibNet.Geo | 13 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.Mcp | dnx MatPlotLibNet.Mcp | Máy chủ MCP — tác tử AI kết xuất biểu đồ qua stdio (sách nấu ăn) |
| @matplotlibnet/angular | npm install @matplotlibnet/angular | Thành phần Angular + máy khách TypeScript SignalR |
| @matplotlibnet/react | npm install @matplotlibnet/react | Hook React + thành phần + máy khách TypeScript SignalR |
| @matplotlibnet/vue | npm install @matplotlibnet/vue | Composable 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ử AI — MatPlotLibNet.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_types và
describe_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ển — Plt.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ốc — MplChartControl 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ực — StreamingLineSeries, 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.