Пользовательский цвет Dygraph для линий сетки

Я хочу иметь красный цвет для линий сетки, имеющих дату (20 июля) в метке оси x, но по умолчанию (черный) для меток оси x времени.

Я пытался использовать «gridLineColor» в параметрах Dygraph, но он применяется ко всем линиям сетки одновременно.

 view.chart = new Dygraph(panelForDygraph,
            data, {
                width: activeTab.getWidth() - 50,
                height: panel.up().up().getHeight() - 150,
                labels: channel,
                labelsSeparateLines: true,
                gridLineColor: 'lightgrey'               
            }
   );

Вот что я хочу сделать:

скриншот


person Matul Jain    schedule 23.07.2019    source источник


Ответы (1)


Вы можете рисовать что угодно, используя underlayCallback. Посмотрите демонстрацию на странице highlighted-region.

В вашем случае вам нужно что-то вроде:

view.chart = new Dygraph(
  panelForDygraph,
  data, {
    width: activeTab.getWidth() - 50,
    height: panel.up().up().getHeight() - 150,
    labels: channel,
    labelsSeparateLines: true,
    gridLineColor: 'lightgrey',
    underlayCallback: function(canvas, area, g) {
      var x1 = g.toDomXCoord(new Date('2019-07-19'));
      var x2 = g.toDomXCoord(new Date('2019-07-20'));

      canvas.fillStyle = 'red';
      canvas.fillRect(x1, area.y, 1, area.h);
      canvas.fillRect(x2, area.y, 1, area.h);
    }
  }
);

Вы можете настроить ширину и расположение по вкусу.

person danvk    schedule 23.07.2019