我在尝试更改 ScatterChart 中数据系列的排列顺序时遇到了问题。基本上,对于多个系列,布局顺序是根据系列添加到图表的顺序给出的。然而,如果我删除一个并稍后再次添加它,它会出现在顶部。我试过了 :
myChart.getData().add(specificIndex, series)
确保最后一个不在上面,但它不起作用
我也试过:
myChart.getData().add(lastSeries);
myChart.getData().stream().sort((seriesA, seriesB)->myComparator(seriesA, seriesB));
但它也不起作用。
此外,我在显示数据点时遇到了类似的问题。基本上,我正在尝试创建一个分散的热图,其中的点根据它们在图表上的密度进行着色。因此,数据与矩形节点相关联,矩形节点的颜色与给定半径内存在的节点数量成正比。
这很好,除了在非常密集的区域中,某些点隐藏了具有更高密度的其他点,并且最终结果不能代表密度函数......
唯一的解决方法是这个(对于系列):
myChart.getData().clear()
myChart.getData().addAll(myCorrectlyOrderedListOfSeries);
这看起来很脏而且计算效率低下......
任何其他方式?
编辑
我实际上解决了数据点的问题,意识到有一个“toFront”方法。
然而,由于我没有该系列的节点,所以我不知道应该在哪个项目上调用有关该系列的toFront()。我真的需要按照我想要的顺序调用所有系列的所有数据点吗?
我检查了散点图生成的节点树,实际上,所有数据点实际上都是同一组的孩子,无论它们属于哪个系列。
因此,除了以下方法外,没有其他方法可以将系列按正确顺序排列:
//List<Series<Double, Double>> myOrderedListOfSeries;
myOrderedListOfSeries.forEach(series->
series.getData().forEach(dataPoint->
dataPoint.getNode().toFront()
)
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句