Dygraphs: часть серии в отдельных легендах - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь получить несколько легенд для одного графика.Например, у меня есть 10 рядов на одном графике, но я бы хотел, чтобы 5 из них появились в легенде слева от графика, а остальные 5 - в легенде справа от графика.У нас есть много серий с разными единицами измерения, поэтому мы хотели бы разделить, например, значения процента на левой оси и в левой легенде, значения напряжения на правой оси и в правой легенде.

Возможно ли это?

1 Ответ

2 голосов
/ 23 мая 2019

Вы можете сделать это с помощью legendFormatter.Цель этой опции - отформатировать стандартную легенду (ту, которая появляется в правом верхнем углу диаграммы или в labelsDiv).Но нет никаких причин, по которым вы не можете использовать его для побочных эффектов.

Что-то вроде этого должно делать то, что вы хотите:

function legendFormatter(data) {
  const leftDiv = document.getElementById('left');
  const rightDiv = document.getElementById('right');
  if (data.x == null) {
    // no selection
    leftDiv.textContent = '';
    rightDiv.textContent = '';
  } else {
    const percentSeries = data.series.filter(v => v.contains('Percentage'));
    const voltageSeries = data.series.filter(v => v.contains('Voltage'));

    leftDiv.innerHTML = data.xHTML + percentSeries.map(v => v.labelHTML + ': ' + v.yHTML).join(' ');
    rightDiv.innerHTML = data.xHTML + voltageSeries.map(v => v.labelHTML + ': ' + v.yHTML).join(' ');
  }
  return '';
}

Есть некоторая документация по параметру data здесь .

...