JFreeChart - 数据集与系列?

时间:2013-05-15 12:11:36

标签: jfreechart

我正在使用最初XYPlot数据集创建null,然后向其添加多个(例如2个)XYSeriesCollection个实例。像

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的渲染器设置似乎无关紧要。

1 个答案:

答案 0 :(得分: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)
...