1

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

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

4

1 回答 1

1

我不知道目的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)
...   
于 2013-05-15T12:25:46.757 回答