Горизонтальная прокрутка с увеличением Chart.js - PullRequest
0 голосов
/ 28 июня 2019

Я делаю приложение в Angular 4, которое должно генерировать отчеты с диаграммами, для этого я использовал Chart.js (ng2-charts) "ng2-charts": "1.6.0"

Проблема: Многие из этих отчетов слишком длинные (более 10000 строк данных), и мне нужно сделать диаграмму со ВСЕМ набором данных ..., чтобы диаграмма выглядела следующим образом: enter image description here

или как это (посмотрите на красный квадрат) enter image description here

поэтому я решил сделать своеобразный «зум», чтобы расширить диапазон обзора по горизонтали с помощью прокрутки, но все-таки диаграмма не выглядит хорошей или понятной enter image description here

<button (click)="zoomChart('plus')" mat-icon-button>
  <mat-icon>zoom_in</mat-icon>
</button>
<button (click)="zoomChart('minus')" mat-icon-button>
  <mat-icon>zoom_out</mat-icon>
</button>
<div class="info-widget  border-right" fxFlex="{{ zoom + 'px' }}">
  <canvas height="60"  #plotChartReport id="plotChartCanvas{{ in }}" baseChart 
    [datasets]="plotingInfo[in].points"
    [labels]="plotingInfo[in].labels"
    [options]="lineChartOptions"
    [colors]="lineChartColors"
    [legend]="lineChartLegend"
    [chartType]="lineChartType">
  </canvas>
</div>

функция zoomChart () это

zoomChart(type: string) {
  if (type === 'plus') {
    if (this.zoom <= 50000) {
      this.zoom += 500;
    }
  } else {
    if (this.zoom > 500) {
      this.zoom -= 500;
    }
  }
}

но он не работает, он только исчезает из диаграмм.

Я только что попробовал это: Я установил библиотеку chartjs-plugin-zoom (https://github.com/chartjs/chartjs-plugin-zoom) и у нее есть интересные инструменты, но у нее нет функции "прокрутки", которая показывает мне легко другие точки на большом графике.

Итак, мой вопрос:

Есть ли способ контролировать ширину холста, чтобы изменить размеры диаграммы и сохранить горизонтальную прокрутку с помощью кнопок? как то так: (от этого к этому)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...