Как отобразить наложенную метку на диаграмме?

StackOverflow https://stackoverflow.com/questions/708868

  •  22-08-2019
  •  | 
  •  

Вопрос

У меня есть диаграмма, созданная с помощью Birt, и я хочу добавить на нее какую-нибудь метку, чтобы указать 4 области, разделенные 2 красными маркерами (см. Изображение ниже), по одной метке в каждом квадранте (по возможности по центру).

Я ищу решение для этого, непосредственно используя birt chart editor или используя javascript (как я сделал для красных маркеров).

alt text

Это было полезно?

Решение

Чтобы динамически центрировать метки определенного типа в каждом квадранте графика, у вас должен быть какой-то способ вычисления координат.Конечно, я не очень хорошо знаком с Birt и делаю предположение, что красные маркеры на графике будут отличаться.

В любом случае, предполагая, что вы можете получить координаты, вы могли бы написать функцию, которая динамически генерировала бы метку на основе пары параметров:

function generateLabel(sContent, iXoffset, iYoffset) {

  var eLabel = document.createElement('span');
  eLabel.appendChild(document.createTextNode(sContent));

  var eDivision = document.createElement('div');
  eDivision.appendChild(eLabel);

  eDivision.style.left = iXoffset + 'px';
  eDivision.style.top = iYoffset + 'px';
  // include other styles here...

  return eDivision;

}

и затем оттуда вы можете вызвать эту функцию с заданным содержимым метки и координатами смещения:

var eQuadrantOneLabel = generateLabel('Quadrant One', 10, 25);
// and so on...

Затем просто добавьте элемент в контейнер graph (предполагая, что он имеет id из, скажем, graph):

var eGraphContainer = document.getElementById('graph');
eGraphContainer.appendChild(eQuadrantOneLabel);
// and so on for each label...
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top