Как отобразить наложенную метку на диаграмме?
-
22-08-2019 - |
Вопрос
У меня есть диаграмма, созданная с помощью Birt, и я хочу добавить на нее какую-нибудь метку, чтобы указать 4 области, разделенные 2 красными маркерами (см. Изображение ниже), по одной метке в каждом квадранте (по возможности по центру).
Я ищу решение для этого, непосредственно используя birt chart editor или используя javascript (как я сделал для красных маркеров).
Решение
Чтобы динамически центрировать метки определенного типа в каждом квадранте графика, у вас должен быть какой-то способ вычисления координат.Конечно, я не очень хорошо знаком с 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...