Sixtyfold Charts

大規模なライン系列およびOHLCVデータセット向けのCanvas2Dチャートです。

Sixtyfold Chartsは、通常のDOMやSVGレンダリングでは扱えない大規模データセット向けのTypeScriptおよびCanvas2Dチャートライブラリです。ブラウザのチャートはサポートされている場合にWeb Workerを使用し、準備とレンダリングをUIスレッド外で行います;同じレンダラーは必要に応じてメインスレッドにフォールバックします。

複数系列のライン、ステップ、レンジ、ポイント、バー、積み上げエリアには@sixtyfold/lineを使用します。OHLCVキャンドル、出来高、インジケーター、出来高プロファイル、価格ライン、イベントマーカーには@sixtyfold/stockを使用します。

ブラウザチャートのランタイムにはサードパーティの依存関係がありません:Core、Line、StockはSixtyfoldパッケージのみを依存先とします。フレームワークアダプターはホストアプリケーションに既に存在するフレームワークを再利用し、オプションのMCP開発者ツールは別プロセスで動作しチャートバンドルに含まれることはありません。

ここから始める

  1. 必要なパッケージだけをインストールしてください
  2. ラインチャートを作る、またはストックチャートを作る
  3. バニラのTypeScriptか、フレームワークアダプターを選択してください。
  4. 本番データを読み込む前に、typed-array所有権契約を読んでください。

すべてのブラウザ統合は同じライフサイクルを持ちます:

const chart = new LineChart(canvas, options);
await chart.initialize();
chart.setMultiSeriesData(data);

// When the view is permanently removed:
chart.destroy();

詳細度(LOD)

LODは詳細度(level of detail)を意味します。より大きなデータセットの画面サイズに合わせた自動表現であり:ラインチャートは重要な極値とギャップを保持し、ストックチャートはキャンドルを有効なOHLCV期間に結合します。ズームするとより細かい詳細が現れます。

同じ原理は3Dゲームでもお馴染みです:遠方のオブジェクトは画面がすべてのポリゴンを表示できないため簡素なモデルを使用し、カメラが近づくと詳細を増します。チャートでは表示範囲がカメラ距離に相当します—概要は数百万の区別できないサンプルの代わりに有限の要約を描画し、ズームインするとより細かなデータを復元します。デフォルト設定はほとんどのアプリケーションに適しています。

さらに進む

プロジェクトの系譜

Sixtyfold Chartsは前身である99ff00/react-chartyの構築で得た教訓から発展しました。Sixtyfoldは単なる名称変更ではなく、新しいアーキテクチャと製品です。

研究的基盤

SixtyfoldのレンダラーとLODシステムは独自のTypeScript実装です。以下の出版物は設計に影響を与えました;リンクは系譜を示すものであり、コード継承、提携、または支持を意味するものではありません。

直接の影響

代替案の評価

  • Downsampling Time Series for Visual Representation — Sveinn Steinarsson、アイスランド大学(2013)。設計時に評価したLargest-Triangle-Three-Bucketsファミリーを紹介しました。SixtyfoldはLTTBを実装していません;製品ラインのLODは極値保持の階層的区間要約を使用します。

これらの引用は研究的影響のみを説明するものです。Sixtyfoldは再現しません 論文の本文、図、または参照実装を。出版物とコードの ライセンスはSixtyfoldのライセンスとは別個のままです。