У меня есть набор данных, который фиксирует время окончания даты выхода, как показано на этом снимке экрана ниже:
Примечание. Последний столбец, EOD Int Time, преобразуется в 24-часовой десятичный формат, поскольку конструктор DataSeriesItem принимает числовое значение в качестве второго параметра.
В настоящее время я пытаюсь визуализировать это в виде линейного графика, как образец временных данных с нерегулярными интервалами (см. здесь).
Поскольку это был набор данных, я попытался захватить их в виде 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 появляется три раза в разделе легенды. Он должен отображаться только один раз.
В этом случае, можем ли мы сгруппировать его как единое целое, поскольку вместо отображения 30 записей как 30 серий он должен отображаться как 30 записей в 12 сериях / выходах?
Если нет, то какие альтернативы можно рассмотреть для решения этой проблемы?
- Это какая-то ошибка / ограничение линейного графика в Vaadin Charts 4.0.5?