ScatterSharp
大量のセンサーデータ向け C#/.NET 散布図ライブラリです。ChartModel のデータ・スタイル・ビューポートを .chart に保存・復元し、Python 連携と別実装の Canvas Web ビューアも提供します。
チャートモデルから保存と描画へ
データ・スタイル・ビューポートを含む ChartModel を保存し、ネイティブ画面、ファイル出力、別実装の Web ビューアで利用します。

- 1.チャートモデルを構成
- ScatterChart API でシリーズ・座標・軸・注釈・ビューポート・選択状態を構成します。等間隔 X は開始値と間隔で表し、PointIds で元データの識別子を関連付けられます。
- 2.状態を保存・復元
- ChartSerializer が manifest.json・chart.json・blobs/*.bin を .chart ZIP に記録します。大容量座標はバイナリ保存し、精度と圧縮を選択できます。
- 3.表示範囲を選んで描画
- ChartRenderer がレイアウトとスケールを計算し、VisibleRange と MinMax・M4 などを適用します。IRenderSurface を通じてシリーズとオーバーレイを描画します。
- 4.表示して操作
- ネイティブホストと PNG・SVG・PDF 出力は Skia を使用します。入力は ChartInteraction に渡され、Web は .chart を読み込んで別の Canvas2D エンジンで表示します。
WPF・WinForms・ヘッドレス出力は Skia を共有します。Web Canvas は同じ .chart 形式を読む別実装であり、両レンダラー間のピクセル一致は保証しません。
GitHubの文書・コードを見るPython データから Web チャートへ
Python がデータとオプションを準備し、chartgen が .chart と任意の PNG を生成します。Web サンプルは画像プレビューから対話型チャートへ移行します。

- 1.シリーズデータを準備
- NumPy 配列とチャートオプションを構成します。SQL 結果も利用できますが、Trino・Iceberg のサンプル基盤は必須ではありません。
- 2..NET にデータを渡す
- Python ラッパーが spec.json とシリーズ別 Arrow IPC ファイルを書き、chartgen を起動します。C# がカラムの役割を解釈して ChartModel を組み立てます。
- 3.2 種の成果物を生成
- .chart を保存し、必要に応じて Skia PNG も生成します。FastAPI サンプルは imageDataUrl と、チャートファイル取得用の chartUrl を返します。
- 4.プレビューから探索へ
- 最初に PNG を表示し、クリック時に .chart を取得します。ブラウザが ZIP・SCPT を解釈し、Canvas2D でズーム・パン・ツールチップを処理します。
Python・FastAPI・Trino は任意の連携です。Web サンプルの一時ファイルキャッシュは永続ストレージではなく、ブラウザが取得した .chart を独自の Canvas エンジンで描画します。
GitHubの文書・コードを見る視覚例で見るチャート機能
マーカー、軸、注釈、統計表示がネイティブチャートにどう反映されるかを示します。

- 1.マーカー
- 形状、バブル、色、画像で値を表現します。
- 2.軸
- 尺度、時刻表示、補助軸、縦横比を選択します。
- 3.注釈
- 閾値、領域、文字、トレンド、移動平均を追加します。
- 4.統計
- 密度表示、平均、中央値、偏差の帯を確認します。
ネイティブ機能の説明例です。Web Canvas ビューアの対応範囲は別途です。
GitHubの文書・コードを見る大規模チャートの操作、保存、描画
ネイティブの操作と出力経路を確認し、性能値はリポジトリ報告として示します。

- 1.操作
- 拡大、選択、点の識別子のホスト転送を行います。
- 2.データ処理
- 点の追加、系列表現、欠損値を扱います。
- 3.出力
- 状態を保存し、ネイティブ画像とベクター出力を利用します。
- 4.性能の理解
- 元配列を保持し、描画範囲と頂点を削減します。
共通なのは .chart 形式でありピクセル一致ではありません。ブラウザの SVG/PDF 出力とストリーミング追加は現行 Web 対応範囲外です。
GitHubの文書・コードを見る機能ギャラリー
マルチシリーズ · 値-色マッピング · 密度ヘックスビン · 第 2 Y 軸 · 時間軸 · 線+領域 — 商用チャート水準の機能を単一レンダラーで提供します。

高度な分析機能
密度ヒートマップ/ヘックスビン · 線/領域 · 誤差バー · ラバーバンド選択 — 分析状態まで保存・復元されます。

ScatterSharp を使ってみる
Apache License 2.0 で公開されたオープンソースです。GitHub でソースとサンプル(10M ベンチ・WinForms デモ・機能ショーケース)をご確認いただけます。