JFree Chart:绘制正确的数据系列

时间:2013-07-25 06:14:04

标签: jfreechart

当我定义XYLineAndShapeRenderer(或者AbstractRenderer ScatterRendererLineAndShapeRendererXYAreaRenderer等任何setSeriesPaint时,我定义了使用数据系列索引绘制线条的各种特征。例如,setSeriesStrokeTimeTableXYDataset允许您指定要表征的数据系列的索引。但是,当我使用add和{{3}}数据点时,API会请求' seriesName' (定义为可比较)。咦? XYLineAndShapeRenderer如何在系列索引(系列#0,系列#1)与seriesName(系列"狗",系列"猫")之间进行匹配?我怎么能确定系列"狗"将用蓝色和#34;猫"用红色绘制(除了反复试验)。看起来这两个API并不匹配......

1 个答案:

答案 0 :(得分:2)

TimeTableXYDataset将按照您向数据集添加项目的顺序,根据需要分配系列索引(从0开始)。例如:

dataset.add(day1, 12.2, "Dogs");  // "Dogs" is series 0
dataset.add(day2, 13.1, "Dogs");
dataset.add(day1, 9.4, "Cats"); // "Cats" is series 1
dataset.add(day2, 8.3, "Cats");

TimeTableXYDataset是JFreeChart中XYDataset接口的一个专门实现,它确保每个系列都有一组一致的x值(这不是XYDataset接口的一般要求,它允许每个系列都有一组独立的x-值)。创建堆积区域图表时,数据集的这一特殊属性非常有用,但实施结果导致了您注意到的API怪癖。