DataSeriesItem可以分组而不是单独出现吗?

问题描述 投票:0回答:1

我有一个捕获插座日期结束时间的数据集,如下面的截图所示:

Sample Dataset, EOD Int Time is Time in Double format

注意:最后一列EOD Int Time转换为24小时十进制格式,因为DataSeriesItem构造函数将数值作为其第二个参数。

我目前正在尝试将其可视化为线图,就像时间数据与不规则间隔样本一样(参见here)。

由于这是在数据集中,我试图以DataSetItem的形式捕获它们,然后将它放入几个DataSeries中。下面这段代码是主要的:

       for(int i=0; i<objList.size(); i++){

            skuLogger.debug("Location value is: " + location);
            Object row = objList.get(i);
            Object[] doj = (Object[])row;
            skuLogger.debug("Record outlet is: " + doj[0].toString());
            skuLogger.debug("DataSeriesData name is: " + dataSeriesData.getStack());
            DataSeriesItem dsItem = new DataSeriesItem(doj[1].toString(),Double.valueOf(doj[3].toString()));

            if(dataSeriesData.getName() != null && location.equalsIgnoreCase(doj[0].toString())){
                skuLogger.debug("ds name is not null: " + dataSeriesData.getName() + "record number " + (i+1));
                location = doj[0].toString();
                dsArray.add(dsItem);
            }else if(dataSeriesData.getName() == null || !location.equals(doj[0].toString())) {
                skuLogger.debug("ds name is null - create new, record number " + (i+1));
                dataSeriesData = new DataSeries();
                dsArray = new ArrayList<DataSeriesItem>();
                location = doj[0].toString();
                dataSeriesData.setName(doj[0].toString());
                skuLogger.debug("ds name after set : " + dataSeriesData.getName() +"record number " + (i+1));
                dsArray.add(dsItem);
            }

            dataSeriesData.setData(dsArray);
            dataSeriesData.setPlotOptions(plotOptions);
            chart.getConfiguration().addSeries(dataSeriesData);
       }

发生的事情是,例如MY012,图表中出现三个系列/线,相互重叠,长度和曲线相同。每条线都有三个EOD日期和时间点。下面的屏幕截图显示了当前的结果:

enter image description here

MY015在图例部分出现三次。它应该只显示一次。

  1. 在这种情况下,我们实际上可以将它分组为一个,而不是将30个记录显示为30个系列,它应该在12个系列/出口中显示为30个记录吗?
  2. 如果没有,可以考虑哪些替代方案来解决这个问题?
  3. 这有点像Vaadin Charts 4.0.5下线图的错误/限制吗?
java vaadin vaadin8 vaadin-charts
1个回答
0
投票

发生的事情是说,例如MY012,图表中出现了三个系列/行

从您创建与列表大小一样多的“系列”的那一刻起:

for(int i=0; i<objList.size(); i++){
    ...
    chart.getConfiguration().addSeries(dataSeriesData);
 }

我似乎很合乎逻辑,不是吗?

MY012在您的列表中出现3次,因此您将添加3个不同的系列(使用相同的图例)。

© www.soinside.com 2019 - 2024. All rights reserved.