2011-08-23 44 views
5
已經內置圖表的數據集

比方說,我已經生成用下面的代碼圖表:修改Java和JFreeChart的

private ChartPanel createChart(){ 
     XYSeries series1 = new XYSeries("First"); 
     XYSeries series2 = new XYSeries("Second"); 
     XYSeries series3 = new XYSeries("Third"); 

     series1.add(0.0, 5.5); 
     series1.add(5, 10); 
     series1.add(10, 5.5); 

     series2.add(0.0, 2); 
     series2.add(5, 2); 
     series2.add(10, 7); 

     series3.add(0.0, 10); 
     series3.add(5, 5); 
     series3.add(10, 6); 

     XYSeriesCollection dataset = new XYSeriesCollection(); 

     dataset.addSeries(series1); 
     dataset.addSeries(series2); 
     dataset.addSeries(series3); 

     JFreeChart chart = ChartFactory.createXYLineChart("line chart example", 
       "X", "Y", dataset, PlotOrientation.VERTICAL, true, true, false); 
     ChartPanel chartPanel = new ChartPanel(chart); 
     chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); 
     return chartPanel; 
    } 

現在我想修改先前在XYSeries插入值,而不另建圖表(沒有其他調用createXYLineChart),並使圖表自動更新。

這是怎麼回事?

回答

1

請看api

有許多不同的方法,具體取決於您是否知道系列中元素的索引,或者您是否知道x值,但是想要更改y值。 我假設圖表將被重繪,因爲所有的方法都會拋出一個SeriesChangeEvent。

+0

你能告訴我至少有一個方法名嗎? – Heisenbug

+0

'update','updateByIndex','addOrUpdate'。實際上,它看起來像是如果你想改變x座標,你必須先用'remove'來擦除點。 'remove'可以獲取該系列中點的x值或索引。 – toto2

+0

不,實際上我只想改變y座標。我認爲updateByIndex會work.thanks。 – Heisenbug