我有伯特创建图表和我要添加一些标签上它来指定由2个红色标记物(参见下图)限定的4个区域,在每个象限中一个标签(居中如果可能的话)。

我寻找一个解决方案做到这一点,直接使用BIRT图表编辑器或者通过使用一个JavaScript(如我已为红色标记完成)。

“替代文字”

有帮助吗?

解决方案

为了动态地居中一些类型的标签在图的每个象限,你必须具有计算坐标的某种方式。当然,我不是很熟悉,伯特和我做这样的假设图的红色标记会有所不同。

总之,假设你可以得到的坐标,你可以写,将基于几个参数动态生成标签的功能:

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...
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top