MatPlotLibNet

公式

チャートのJSONを渡すと、モデルが実際に確認できるPNGをレンダリングします — 83種類のチャートタイプ、SVGおよびPDFをファイルに書き出し、.NETツールとしてローカルで動作します。

MatPlotLibNet MCPで何ができますか?

  • JSON仕様からチャートを描画render_chart でチャートをリクエストすると、PNGと描画内容のテキスト要約が得られます。
  • チャートをファイルに保存save_chart を使用して、チャートをPNG、SVG、またはPDFとしてエクスポートし、書き込まれたファイルパスを受け取ります。
  • チャート機能を探索list_chart_types を照会して、折れ線プロットから3Dサーフェスまで、全83種類のサポートされている系列タイプを確認します。
  • チャートスキーマを検証 — チャート仕様が不正な場合、describe_chart_schema からフィールドレベルのエラーフィードバックを取得します。

ドキュメント

MatPlotLibNet

matplotlib に着想を得た .NET 10 / .NET 8 対応のチャートライブラリです。流暢なAPI、DI対応、 サーバーサイドでのSVG / PNG / PDF / アニメーションGIF書き出し、AIエージェントが描画に使えるMCPサーバー、83種類のシリーズタイプを備えています。13種類の地図投影法と組み込みの Natural Earthデータ、30テーマ、LaTeX風MathText、53種類のテクニカル指標を備えたO(1)ストリーミング、コントロールルーム (Plt.OpsDashboard() — KPIタイル、状態タイムライン、共有トレンドウィンドウ)、そしてBlazor、WPF、 MAUI、Avalonia、Uno、ASP.NET Core向けのネイティブコントロールに加え、Angular、React、Vue向けのTypeScriptクライアントを提供します。JavaScriptフレームワーク不要、 WebView不要、SaaS不要です。

CI NuGet NuGet Downloads License: MIT GitHub stars

今後の展望

1.15 系はライブラリをエージェントに開放します: MatPlotLibNet.Mcp はModel Context Protocolサーバーであり、 モデルはJSON仕様からこれらすべてのチャートタイプを描画し、その結果を確認できます。また、仕様が正しくない場合は、どのフィールドが間違っているかを通知されます。

その前の 1.14 系はコントロールルーム関連の作業でした: Plt.OpsDashboard() とタイル構造がこのバージョンで追加され、 それ以降のリリースは、実際のオペレーターウォールからの要望による修正と拡張です — 完全な市民権を得たセカンダリY軸、SVGで描画されるストリーミング、 自身のラベルをクリアする3D軸タイトル、タイル内に収まり折り返されるタイルキャプション、目盛りが時刻として読めるオペレーションウィンドウなどです。

その後はコミュニティ主導のペースです: バグ修正、ドキュメント、そして実際の使用で見つかったもの。 Discussion または Issue を開いてください — それが次のリリースを方向づけます。各リリースと その移行ノートは CHANGELOG にあります。

品質基準: クラス単位の厳格なカバレッジゲートを ≥90 % の行・分岐で適用 (679クラス、99.6 % / 97.3 %)、 11,022テストを実行し、レンダリングはmatplotlibのピクセル忠実度フィクスチャに対して検証されています。


ドキュメント

  • Wiki — はじめ方、チートシート、全83チャートタイプ、 コントロールルーム、スタイリング、ストリーミング、SignalR、パッケージ
  • Cookbook — レンダリング出力付きのコピーペースト例
  • Playground — ブラウザでチャートをライブで試す
  • API Reference — XMLドキュメントから生成
  • Benchmarks · Coverage policy · CHANGELOG

パッケージ

パッケージインストール機能
MatPlotLibNetdotnet add package MatPlotLibNetコア: モデル、流暢なAPI、SVGレンダリング、JSON、変換
MatPlotLibNet.DataFramedotnet add package MatPlotLibNet.DataFrameMicrosoft.Data.Analysis.DataFrame 拡張メソッド — 名前付き列からのプロット、インジケーター (SMA/EMA/RSI/MACD/…)、多項式回帰
MatPlotLibNet.Skiadotnet add package MatPlotLibNet.SkiaSkiaSharpによるPNG、PDF、アニメーションGIF書き出し
MatPlotLibNet.Blazordotnet add package MatPlotLibNet.BlazorSignalR付き MplChart + MplLiveChart Razorコンポーネント
MatPlotLibNet.AspNetCoredotnet add package MatPlotLibNet.AspNetCoreRESTエンドポイント、SignalRハブ、IChartPublisher
MatPlotLibNet.Interactivedotnet add package MatPlotLibNet.Interactivefigure.ShowAsync() — ブラウザポップアップ、サーバー不要
MatPlotLibNet.GraphQLdotnet add package MatPlotLibNet.GraphQLHotChocolateによるGraphQLクエリ + サブスクリプション
MatPlotLibNet.Mauidotnet add package MatPlotLibNet.MauiMicrosoft.Maui.Graphicsによるネイティブ MplChartView
MatPlotLibNet.Avaloniadotnet add package MatPlotLibNet.AvaloniaAvalonia 12向けネイティブ MplChartControl — Skiaバックエンド、オプションのローカル操作
MatPlotLibNet.Unodotnet add package MatPlotLibNet.UnoUno Platform向けネイティブ MplChartElement (WinUI 3 / Android / iOS / macCatalyst)
MatPlotLibNet.Wpfdotnet add package MatPlotLibNet.WpfSkiaSharpによるネイティブWPF MplChartControl — 全9操作モディファイア
MatPlotLibNet.Geodotnet add package MatPlotLibNet.Geo13地図投影法、GeoJSONパーサー、Natural Earth 110mデータ、地理ポリゴン
MatPlotLibNet.Notebooks#r "nuget: MatPlotLibNet.Notebooks"Polyglot / JupyterノートブックでのインラインSVG
MatPlotLibNet.Mcpdnx MatPlotLibNet.McpMCPサーバー — AIエージェントがstdio経由でチャートをレンダリング (cookbook)
@matplotlibnet/angularnpm install @matplotlibnet/angularAngularコンポーネント + TypeScript SignalRクライアント
@matplotlibnet/reactnpm install @matplotlibnet/reactReactフック + コンポーネント + TypeScript SignalRクライアント
@matplotlibnet/vuenpm install @matplotlibnet/vueVue 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.McpModel Context Protocol サーバーであり、ホストがstdio経由で起動する.NETツールとして提供されます。4つのツール: render_chart (PNGと描画内容のテキスト要約)、save_chart (PNG/SVG/PDFをファイルに書き出し、書き込んだパスを返す)、list_chart_typesdescribe_chart_schema。仕様はライブラリ自身のfigure JSONであるため、ライブラリが描画できるものはすべてエージェントが要求でき、 サーバーはレンダリング前にフィールド名で不正な仕様を拒否し、空白の画像を返す代わりにエラーを報告します。cookbook を参照してください。

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

コントロールルームPlt.OpsDashboard() は1つのオペレーター画面を構成します: 上部のKPIタイル、その下の状態タイムライン、共有トレンドパネル。すべて呼び出し元が指定した1つの時間ウィンドウに固定されます (ライブラリは壁時計を読み取りません)。タイルには Target、折り返し対応の複数行 Caption、インラインスパークライン、情報なし を意味する Hatch が含まれます。Theme.Alarm は予約済みのアラーム色を定義し、4つのオペレーター背景が付属します。BulletGraphSeries はラジアルゲージを置き換えます。

ネイティブUIコントロール — Avalonia 12向け MplChartControl とUno Platform向け MplChartElement は、SkiaSharpを介してチャートをネイティブにレンダリングします — ブラウザ、WebView、SignalRは不要です。9つの操作モディファイア: パン (ドラッグ)、ズーム (スクロール)、3D回転 (右ドラッグ)、矩形ズーム (Ctrl+ドラッグ)、ブラシ選択 (Shift+ドラッグ)、スパン選択 (Alt+ドラッグ)、凡例トグル (クリック)、クロスヘア (パッシブ)、ホバーツールチップ。ツールバー状態モデル、ビュー履歴 (戻る/進む)、データカーソル (クリックで固定)、目盛りミラーリング、タイトマージン。

MathText — 任意のラベルやタイトル内のLaTeX風インライン数式: $\alpha^{2}$$\frac{a}{b}$$\sqrt{x}$$\hat{x}$$\mathbf{F}$$\mathbb{R}$。96のシンボルマッピング (ギリシャ文字、数学演算子、矢印、関係、集合/論理、黒板太字)、分数、平方根、アクセント、フォントバリアント、間隔、スケーリング区切り文字。

3Dチャート — 12シリーズタイプ: Surface、Scatter3D、Bar3D、PlanarBar3D、Line3D、Trisurf3D (Delaunay)、Contour3D (マーチングスクエア)、Quiver3D (ベクトル場)、Voxels (フェイスカリングされたキューブ)、Text3D (注釈)。完全な Projection3D パイプライン、DepthQueue3D ペインターズアルゴリズム、Vec3.FaceNormal + Color.Shade()/Color.Modulate() 拡張ベースのシェーディング、深度再ソート付き Svg3DRotationScript クライアントサイド回転、カメラ由来の背面 (CubeFaceSelection — パネル、キューブエッジ、壁グリッド、目盛り行は、サーバーサイドとドラッグ中の両方で、任意の方位角でカメラに追従)、設定可能な Pane3DConfig (床/壁の色)、3Dカラーバー対応。

ストリーミング & リアルタイムStreamingLineSeriesStreamingScatterSeriesStreamingSignalSeriesStreamingCandlestickSeriesDoubleRingBufferAppendPoint(x, y) によって支えられています。StreamingFigure はスロットル付き再レンダリングと自動スケーリング軸を提供します (SlidingWindowStickyRightAutoScale)。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数値演算 (VecMatLinalgFft)。アクセシビリティ (ARIA、キーボード、Okabe-Itoパレット、ハイコントラストテーマ)。Matplotlib風テーマ。53のテクニカル指標 を備えたDataFrame統合。軸の分割。出版品質のSVG/PNG/PDF/GIF書き出し。


ライセンス

MIT — オープンソース、商用を問わず、コピーレフト条件なしで自由に使用できます。