【问题标题】:Can DataSeriesItem be grouped instead of appearing individually?DataSeriesItem 可以分组而不是单独出现吗?
【发布时间】:2019-03-14 12:43:47
【问题描述】:

我有一个数据集,可以捕获出口的结束日期时间,如下面的屏幕截图所示:

注意:最后一列 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 日期和时间点。下面的截图显示了当前的结果:

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

  1. 在这种情况下,我们真的可以将其分组为一个,而不是将 30 条记录显示为 30 系列,而是应显示为 12 系列/出口中的 30 条记录?

  2. 如果不是,可以考虑哪些替代方案来解决这个问题?

  3. 这在某种程度上是 Vaadin Charts 4.0.5 下折线图的错误/限制吗?

【问题讨论】:

    标签: java vaadin vaadin8 vaadin-charts


    【解决方案1】:

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

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

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

    我看起来很合乎逻辑,不是吗?

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

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 1970-01-01
      • 2013-09-23
      • 2011-01-24
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      相关资源
      最近更新 更多