Как установить разные цвета для столбцов в гистограмме с накоплением в 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);
    }
}
Другие вопросы по тегам