# Integration
chartjs-plugin-streaming can work with other Chart.js plugins.
# Annotation Plugin
By using together with chartjs-plugin-annotation (opens new window), you can get annotations to scroll along with the realtime scale axis.
COMPATIBILITY NOTE
This plugin requires chartjs-plugin-annotation 1.x.
const myChart = new Chart(ctx, {
options: {
plugins: {
annotation: {
annotations: {
// Assume x axis has the realtime scale
line: {
drawTime: 'afterDatasetsDraw',
type: 'line',
scaleID: 'x',
value: LINE_TIME
},
box: {
drawTime: 'beforeDatasetsDraw',
type: 'box',
xMin: BOX_START_TIME,
xMax: BOX_END_TIME
}
}
}
}
}
});
Note that chartjs-plugin-annotation.js needs to be included before chartjs-plugin-streaming.js.
# Data Labels Plugin
By using together with chartjs-plugin-datalabels (opens new window), labels on data can be displayed in the streaming chart.
COMPATIBILITY NOTE
This plugin requires chartjs-plugin-datalabels 2.x.
const myChart = new Chart(ctx, {
options: {
plugins: {
datalabels: {
// Assume x axis has the realtime scale
backgroundColor: context => context.dataset.borderColor,
padding: 4,
borderRadius: 4,
clip: true, // true is recommended to keep labels running off the chart area
color: 'white',
font: {
weight: 'bold'
},
formatter: value => value.y
}
}
}
});
Note that chartjs-plugin-datalabels.js needs to be included before chartjs-plugin-streaming.js.
# Financial Chart
By using together with chartjs-chart-financial (opens new window), auto-scrollable financial charts can be created.
COMPATIBILITY NOTE
chartjs-chart-financial is still pre-release. We confirmed that it works with the commit #5dcdca5 (opens new window).
const myChart = new Chart(ctx, {
type: 'candlestick', // or 'ohlc'
options: {
scales: {
x: {
type: 'realtime',
ticks: {
source: 'auto' // default for candlestick chart is 'data'
}
}
}
}
});
Note that chartjs-chart-financial.js needs to be included before chartjs-plugin-streaming.js.
# Zoom Plugin
By using together with chartjs-plugin-zoom (opens new window), zooming and panning of a streaming chart can be done via the mouse or finger gestures.
COMPATIBILITY NOTE
This plugin requires chartjs-plugin-zoom 1.x.
Unlike other scale types, the min, max and minRange in the limits options are not used. Instead, the minDelay, maxDelay, minDuration and maxDuration limit the range of the delay and duration option values.
const myChart = new Chart(ctx, {
options: {
plugins: {
zoom: {
// Assume x axis has the realtime scale
pan: {
enabled: true, // Enable panning
mode: 'x' // Allow panning in the x direction
},
zoom: {
pinch: {
enabled: true // Enable pinch zooming
},
wheel: {
enabled: true // Enable wheel zooming
},
mode: 'x' // Allow zooming in the x direction
},
limits: {
x: {
minDelay: null, // Min value of the delay option
maxDelay: null, // Max value of the delay option
minDuration: null, // Min value of the duration option
maxDuration: null // Max value of the duration option
}
}
}
}
}
});
Note that chartjs-plugin-zoom.js needs to be included before chartjs-plugin-streaming.js.