Сопоставление имени серии JFreeChart с индексом серии - PullRequest
6 голосов
/ 21 июня 2010

Я строю график TimeTableXYDataset, используя StackedXYBarRenderer. К сожалению, цвета каждой серии меняются при обновлении.

Я знаю, как устанавливать цвета с помощью метода setSeriesPaint средства визуализации, но в качестве аргумента используется индекс целочисленной серии. Я создаю точки данных, используя строку в качестве имени серии:

ds.add(new SimpleTimePeriod(us.getDate(), 
                            new Date(us.getDate().getTime() + 1000*60)),
       us.getTotal(), us.getName()));

Как мне найти соответствие между названием серии и индексом серии, чтобы я мог позвонить setSeriesPaint?

1 Ответ

5 голосов
/ 21 июня 2010

Самый простой подход - обновить подходящий Map по мере накопления данных. В качестве альтернативы методы getSeriesKey() и indexOf() могут использоваться для преобразования в любом направлении. Например,

for (int i = 0; i < ds.getSeriesCount(); i++) {
    String name = (String) ds.getSeriesKey(i);
    System.out.println(ds.indexOf(name) + ": " + name);
}
...