2013-04-15 50 views
0
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中的是已格式化爲String [Rows] [Columns]的CSV文件。我想要做的是創建一個XYBarchart的數據集,其中startColumn指示哪一列,並使用for循環遍歷該列的行以獲取X軸的值(鍵?)。 Y的值是從同一行的endColumn中檢索的。在XYSeries中一起添加重複X值的Y值

但是在m_Data數組中,它們是重複值,所以當使用具有重複值的列作爲X軸時,我需要將相應的Y值一起添加。然而,我已經實現的方法似乎不起作用,而只是將第一次遇到的值添加到系列中。

回答

0

您需要繼承XYSeries並替換XYDataItem addOrUpdate(Number x, Number y)public void add(XYDataItem item, boolean notify),以便添加附加值而不是覆蓋現有的Y值。

或者迭代遍歷您的數據集兩次以聚合重複項,然後將其添加到XYSeries