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