素数条形图系列上的工具提示标签



我试图广泛搜索论坛和谷歌,但我在理解我应该如何做到这一点时遇到了问题:

总理面孔6

我有一个基于ShowCase教程的BarchartModel: 代码:全选 private BarChartModel initStatusBarChart() { 条形图模型模型 = 新的条形图模型();

ChartSeries statusMessages = new ChartSeries();
statusMessages.setLabel("Label"));
statusMessages.set("Some String 1", list1.size());
statusMessages.set("Some String 2", list2.size());

model.addSeries(statusMessages);
return model;
}

问题是在渲染时,我得到的工具提示格式为

"1, 515" 和 "2, 432",其中 515 和 432 分别是 list1 和 list2 的大小。

如何将 1 和 2替换为值"一些字符串"1 和 2 ?尝试扩展荧光笔并使用数据提示格式,但没有成功。

我使用图表模型的数据提示编辑器解决了这个问题(顺便说一下,Primefaces 6.1)。我将其用于堆叠条形图。 我需要在两个地方应用这个解决方案:支持Bean和JSF页面。

在支持Bean中,我必须以这种方式设置一个JavaScript函数名称:

barModel.setDatatipEditor("chartDatatipEditor");

我尝试使用 JSF 页面中的相应标签属性设置它,但没有效果。

在JSF中,我插入了以下JavaScript代码:

<script type="text/javascript">
function chartDatatipEditor(str, seriesIndex, pointIndex, plot) {
//console.log('chartDatatipEditor: '+str+" - "+seriesIndex+" - "+pointIndex);
var point = seriesIndex+','+pointIndex;
#{bean.datatipsJs}
}
</script>

此 JS 函数获取图表坐标作为参数。我将它们连接起来,以便以下 JS 代码变得更容易。 系列指数是图表系列的指数点索引是图表的 X 刻度上的索引。

要了解图表的正确值是什么,您可以取消对控制台.log上面的行的注释。

插入的 JS 代码以这种方式在后备 Bean 中构造:

private Map<String, String> chartDatatips;
public String getDatatipsJs() {
StringBuilder sb = new StringBuilder("switch ( point ) {n");
for (String point : chartDatatips.keySet()) {
sb.append("case '").append(point).append("': return '").append(chartDatatips.get(point)).append("'; break;n");
}
sb.append("default: return 'Unknown point'; break; }");
return sb.toString();
}

地图数据提示将坐标点作为键(例如,"2,1"),将工具提示作为值。

在图表设置过程中,您显然必须用有用的详细信息填充此地图;-)

喜欢这个:

chartDatatips.put("2,5", "Label ...");
...

希望这有所帮助,如果您还没有解决这个问题。

~亚历克斯

根据亚历克斯的回答,我想出了这个。只需要javascript - 它显示标签和值:

在后备 Bean 中,以这种方式设置 JavaScript 函数名称:

barModel.setDatatipEditor("chartDatatipEditor");

在 HTML 文件中:

function chartDatatipEditor(str, seriesIndex, pointIndex, plot) {
return plot.series[seriesIndex].label + ' - ' + plot.data[seriesIndex][pointIndex];
}

最新更新