ScatterSharp
大量のセンサーデータのための高性能 C#/.NET 散布図(Scatter Chart)ライブラリです。チャートの状態を丸ごとシリアライズし、読み込み直せばズーム状態まで即座に同一レンダリング — シリーズあたり最大 1,000 万(10M)点をインタラクティブに扱えます。
機能ギャラリー
マルチシリーズ · 値-色マッピング · 密度ヘックスビン · 第 2 Y 軸 · 時間軸 · 線+領域 — 商用チャート水準の機能を単一レンダラーで提供します。

主要ハイライト
シリーズあたり最大 1,000 万点
ピクセル列ごとの min/max ダウンサンプルで 10M 点もインタラクティブにレンダリング — 1920×1080 で約 110ms。
ハイブリッドシリアライズ (.chart)
設定は JSON、大容量座標はバイナリ blob を ZIP コンテナに — 保存したズーム・選択状態までそのまま復元します。
単一レンダラー、3 バックエンド
SkiaSharp ひとつで WPF · WinForms · ヘッドレス(PNG/SVG/PDF)がピクセル単位で同一の結果を出します。
DB 逆トレース対話
点をクリックすると元の DB 行へ逆トレース(PointIds + PointClicked) — ポイント別カスタムツールチップ、マルチシリーズ共有ツールチップ。
主な機能
すべての機能が漏れなく ChartModel に載り、シリアライズをラウンドトリップします。
マーカー · ポイント
6 種のマーカー形状、サイズ・色・不透明度、バブル(点別サイズ)、値-色マッピング+カラーバー、画像マーカーに対応。
インタラクション
ツールチップ+クロスヘア、ズームボックス(縦横比維持)、軸別ズーム、ラバーバンド選択(保存対象)、凡例クリックトグル、リアルタイム append。
軸
線形/対数/時間軸(ラベル自動細分)、第 2 Y 軸、反転軸、カテゴリ軸、縦横比固定、軸別フォント指定。
注釈 · 分析
しきい線/バンド/矩形/テキスト注釈、トレンドライン+移動平均、密度ヒートマップ/ヘックスビン、平均・中央値・±kσ 統計バンド。
スタイル · 出力
ライト/ダークテーマ+パレット、要素別フォント、PNG·SVG·PDF(ベクター)·クリップボード出力、フォントフォールバックで非ラテン文字も描画。
データ
10M ダウンサンプル、リアルタイム append(ローリングウィンドウ)、線/領域/バーモード、誤差バー、NaN/欠測処理、SoA + Uniform X メモリ最適化。
高度な分析機能
密度ヒートマップ/ヘックスビン · 線/領域 · 誤差バー · ラバーバンド選択 — 分析状態まで保存・復元されます。

10M ポイント実測性能
1,000 万点シリーズ基準(1920×1080)。復元後のレンダリング結果は元とピクセル単位で一致します。
フルレンダリング (統計バンド含む)
ズームレンダリング (カリング)
保存サイズ (f32 + deflate)
ロード (10M 復元)
秘訣: まず可視区間だけカリング(VisibleRange)し、次にピクセル列ごとの min/max でダウンサンプル — 元が 1,000 万点でも実際に描く頂点は画面幅程度に収まります。レンダーループはゼロアロケーションのホットパスで動作します。
アーキテクチャ — モデルとレンダラーの分離
チャートの全状態は純粋 POCO の ChartModel ひとつで表現され、レンダラーはこのモデルだけを入力に取ります — 「読み込み → レンダリング」がそのまま「保存して即描画」になります。
ScatterSharp を使ってみる
Apache License 2.0 で公開されたオープンソースです。GitHub でソースとサンプル(10M ベンチ・WinForms デモ・機能ショーケース)をご確認いただけます。