# 連携

chartjs-plugin-streaming は他の Chart.js プラグインと一緒に使えます。

# Annotation プラグイン

chartjs-plugin-annotation (opens new window) と併用することで、アノテーションを realtime スケール軸に沿ってスクロールさせることができます。

互換性に関する注意事項

このプラグインには、chartjs-plugin-annotation 1.x が必要です。

const myChart = new Chart(ctx, {
  options: {
    plugins: {
      annotation: {
        annotations: {
          // x軸は realtime スケールであると仮定
          line: {
            drawTime: 'afterDatasetsDraw',
            type: 'line',
            scaleID: 'x',
            value: LINE_TIME
          },
          box: {
            drawTime: 'beforeDatasetsDraw',
            type: 'box',
            xMin: BOX_START_TIME,
            xMax: BOX_END_TIME
          }
        }
      }
    }
  }
});

なお、chartjs-plugin-annotation.jschartjs-plugin-streaming.js の前にロードする必要があります。

# Data Labels プラグイン

By using together with chartjs-plugin-datalabels (opens new window) と併用することで、ストリーミングチャートにデータラベルを表示することができます。

互換性に関する注意事項

このプラグインには、chartjs-plugin-datalabels 2.x が必要です。

const myChart = new Chart(ctx, {
  options: {
    plugins: {
      datalabels: {
        // x軸は realtime スケールであると仮定
        backgroundColor: context => context.dataset.borderColor,
        padding: 4,
        borderRadius: 4,
        clip: true,       // ラベルがチャート領域からはみ出さないように true を推奨
        color: 'white',
        font: {
          weight: 'bold'
        },
        formatter: value => value.y
      }
    }
  }
});

なお、chartjs-plugin-datalabels.jschartjs-plugin-streaming.js の前にロードする必要があります。

# Financial チャート

chartjs-chart-financial (opens new window) と併用することで、自動スクロールする金融チャートを作成することができます。

互換性に関する注意事項

chartjs-chart-financial はまだプレリリースです。コミット #5dcdca5 (opens new window) で本プラグインと動作することを確認しています。

const myChart = new Chart(ctx, {
  type: 'candlestick',    // または 'ohlc'
  options: {
    scales: {
      x: {
        type: 'realtime',
        ticks: {
          source: 'auto'  // ローソク足チャートのデフォルト値は 'data'
        }
      }
    }
  }
});

なお、chartjs-plugin-financial.jschartjs-plugin-streaming.js の前にロードする必要があります。

# Zoom プラグイン

chartjs-plugin-zoom (opens new window) と併用することで、マウスや指のジェスチャーでストリーミングチャートのズームやパンができるようになります。

互換性に関する注意事項

このプラグインには、chartjs-plugin-zoom 1.x が必要です。

他のスケールタイプとは異なり、limits オプションの minmaxminRange は使用されません。代わりに、minDelaymaxDelayminDurationmaxDuration を使用して delayduration オプション値の範囲を制限します。

const myChart = new Chart(ctx, {
  options: {
    plugins: {
      zoom: {
        // x軸は realtime スケールであると仮定
        pan: {
          enabled: true,        // パンの有効化
          mode: 'x'             // x軸方向のパン
        },
        zoom: {
          pinch: {
            enabled: true       // ピンチズームの有効化
          },
          wheel: {
            enabled: true       // ホイールズームの有効化
          },
          mode: 'x'             // x軸方向のズーム
        },
        limits: {
          x: {
            minDelay: null,     // delay オプションの最小値
            maxDelay: null,     // delay オプションの最大値
            minDuration: null,  // duration オプションの最小値
            maxDuration: null   // duration オプションの最大値
          }
        }
      }
    }
  }
});

なお、chartjs-plugin-zoom.jschartjs-plugin-streaming.js の前にロードする必要があります。