Как установить разные цвета для столбцов в гистограмме с накоплением в ireport?
Мне нужно установить уникальный цвет для каждого столбца в гистограмме с накоплением. Независимо от цвета, который я вижу в одном баре, его не следует повторять ни в одном другом баре или в любом другом стеке.
Например: у меня есть 5 баров в отчете. В каждом баре есть 3 разных стека. Я хочу применить красный связанный цвет к первому бару и его стекам. Второй бар должен иметь синий цвет. и т. д. Это показано на прикрепленном изображении. Изображение показывает очень основное требование, что мы хотим. Просто создан с использованием обычной краски MS. Stacked Bar MS Paint Image
1 ответ
Вы можете переопределить getItemPaint()
метод StackedBarRenderer()
вернуть желаемый цвет. Вы можете использовать getHSBColor() для создания связанных цветов, изменяя яркость или насыщенность для данного оттенка.
Приложение: Пример ниже распечатает строку, столбец и цвет для каждого элемента. Вы можете использовать результат в качестве руководства, какой пользовательский цвет вы хотите вернуть. Увидеть BarChartDemo1
для образца набора данных.
plot.setRenderer(new MySBRenderer());
...
private static class MySBRenderer extends StackedBarRenderer {
@Override
public Paint getItemPaint(int row, int col) {
System.out.println(row + " " + col + " " + super.getItemPaint(row, col));
return super.getItemPaint(row, col);
}
}