2013-05-15 56 views
0

我正在創建一個XYPlot,最初爲null數據集,然後向其添加多個(例如2個)XYSeriesCollection實例。像JFreeChart - 數據集與系列?

val chart = ChartFactory.createXYLineChart(...) 
val plot = chart.getXYPlot 
plot.setDataset(0, dataset0) 
plot.setDataset(1, dataset1) 

現在我希望他們有他們不同的顏色和筆觸:

import BasicStroke._ 
val renderer = plot.getRenderer 
renderer.setSeriesPaint(0, Color.black) 
renderer.setSeriesPaint(1, Color.red) 
renderer.setSeriesStroke(0, new BasicStroke(2.0f)) 
renderer.setSeriesStroke(1, 
    new BasicStroke(2.0f, CAP_ROUND, JOIN_ROUND, 1.0f, Array(6f, 6f), 0f)) 
) 

但都出現在黑色和非虛。所以我必須在理解數據集和系列之間的對應關係方面犯一個錯誤?


我也試圖與plot.getRendererForDataset(dataset),但同樣,這兩個數據集是由設置0系列控制,而對於系列1的渲染器設置似乎是不相關的。

回答

0

我不知道plot.setDataset(idx, _)的用途是什麼,但是XYSeriesCollection本身需要包含不同的系列。

val series: Seq[XYSeries] = ... 
val dataset = new XYSeriesCollection 
series.foreach(dataset.addSeries _) 
val chart = ChartFactory.createXYLineChart("title", "x", "y", dataset, 
    PlotOrientation.VERTICAL, true, false, false) 

val plot  = chart.getXYPlot 
val renderer = plot.getRenderer 

renderer.setSeriesPaint (0, paint0) 
renderer.setSeriesStroke(0, stroke0) 
renderer.setSeriesPaint (1, paint1) 
renderer.setSeriesStroke(1, stroke1) 
...