Как отобразить метку наложения на графике? - PullRequest
0 голосов
/ 02 апреля 2009

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

Я ищу решение, чтобы сделать это, непосредственно с помощью редактора Birt Chart или с помощью JavaScript (как я сделал для красных маркеров).

alt text

1 Ответ

1 голос
/ 03 апреля 2009

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

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

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...

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

var eGraphContainer = document.getElementById('graph');
eGraphContainer.appendChild(eQuadrantOneLabel);
// and so on for each label...
...