public XYSeriesCollection CreateDataset(int startColumn, int endColumn, int startRow, int endRow) {
XYSeriesCollection dataset = new XYSeriesCollection();
XYSeries series = new XYSeries("Test");
for (int j = startRow; j < endRow; j++) {
String curVal = m_Data[j][endColumn];
if (isInt(curVal)) {
XYDataItem item = series.addOrUpdate(Integer.parseInt(m_Data[j][startColumn]), Integer.parseInt(curVal));
if (item != null) {
int temp = item.getY().intValue() + Integer.parseInt(curVal);
int temp1 = series.indexOf(Integer.parseInt(m_Data[j][startColumn]));
/*Integer temp2 = new Integer(Integer.parseInt(m_Data[j][startColumn]));
series.update((Number) temp2, temp);*/
series.updateByIndex(temp1, temp);
}
} /*else if (isDouble(curVal)) {
series.add(Integer.parseInt(m_Data[j][startColumn]), Double.parseDouble(curVal));
} else {
series.add(Integer.parseInt(m_Data[j][startColumn]), 0);
}*/
}
dataset.addSeries(series);
return dataset;
}
包含在m_Data中的CSV文件已格式化为String [Rows] [Columns]。我要做的是创建一个用于XYBarchart的数据集,其中startColumn指示哪个列,而for循环用于遍历该列的行以获取X轴的值(键?)。 Y的值从同一行的endColumn中检索。
然而,在m_Data数组中是重复值,因此当使用具有重复值的列作为X轴时,我需要将相应的Y值一起添加。但是,我实现的方法似乎不起作用,而只是将第一个遇到的值添加到系列中。
答案 0 :(得分:0)
您需要继承XYSeries
并替换XYDataItem addOrUpdate(Number x, Number y)
或public void add(XYDataItem item, boolean notify)
,以便添加其他值,而不是覆盖现有的Y值。
或者遍历数据集两次以聚合重复项,然后将其添加到XYSeries