Иметь текущую информацию о масштабировании в 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
}
Другие вопросы по тегам