我有一个捕获插座日期结束时间的数据集,如下面的截图所示:
注意:最后一列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在图例部分出现三次。它应该只显示一次。
发生的事情是说,例如MY012,图表中出现了三个系列/行
从您创建与列表大小一样多的“系列”的那一刻起:
for(int i=0; i<objList.size(); i++){
...
chart.getConfiguration().addSeries(dataSeriesData);
}
我似乎很合乎逻辑,不是吗?
MY012在您的列表中出现3次,因此您将添加3个不同的系列(使用相同的图例)。