Иметь текущую информацию о масштабировании в chart.js с плагином увеличения
Я пытаюсь указать начальную и конечную дату моего увеличения, а не минимальные и максимальные значения моего графика. Я не нахожу проблем. Кто-то может помочь? Это в VueJS
plugins: {
datalabels: {
display: false
},
zoom: {
zoom: {
enabled: true,
drag: true,
mode: "x",
sensitivity: 100,
speed: 10,
onZoom: this.onZoom
}
}
}
onZoom({ chart }) {
console.log(chart)
const start = chart.scales.time.min; // I have to change this
const end = chart.scales.time.max; // I have to change this
console.log(start, end)
this.$emit("interval", { start, end });
}
например, мой график начинается в 12:00 и заканчивается в 16:00. Я нажимаю между 14:00 и 15:00 и хочу взять эти значения и передать их родителю.
1 ответ
Я не думаю, что ты сможешь. Плагин масштабирования chartjs просто изменяет минимальные / максимальные настройки масштабированных осей. Вы можете использовать это, чтобы определить коэффициент масштабирования, если вы знаете начальные / значения, я думаю. Плагин хранит
min
/
max
внутренне для
resetZoom
функция, но я не думаю, что у вас есть к ней доступ.
Если вы, как и я, просто хотите применить такое же масштабирование к другой (или в моем случае к новой диаграмме) диаграмме, возможно, это поможет вам (работает с chart.js 3 / chartjs-plugin-zoom 1.1):
const options = chart?.scales.x.options; // store the options of the old chart
chart?.clear(); // tear down the old chart
chart?.destroy();
chart = renderChart(canvas, data); // create a new one
if(options) {
chart.zoom({x: 1}); // make sure internal structures of the zoom plugin are set up
chart.scales.x.options.min = options.min; // restore the zoom
chart.scales.x.options.max = options.max;
chart.update(); //rerender the chart
}