0

当我定义我的XYLineAndShapeRenderer(或任何AbstractRenderer,例如ScatterRendererLineAndShapeRendererXYAreaRenderer等)时,我使用数据系列的索引来定义绘制线的各种特征。例如,setSeriesPaintsetSeriesStroke允许您指定要表征的数据系列的索引。但是当我使用TimeTableXYDataset添加数据点,API 请求“seriesName”(定义为 Comparable)。嗯?系列索引(系列#0,系列#1)与系列名称(系列“狗”,系列“猫”)之间的XYLineAndShapeRenderer如何匹配?我怎么能确定系列“狗”将以蓝色绘制,“猫”以红色绘制(除了反复试验)。看来这两个API不太匹配...

4

1 回答 1

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 怪癖。

于 2013-07-25T08:57:45.387 回答