Как установить разные цвета в столбцы в гистограмме в штабеле в iireport?

Мне нужно установить уникальный цвет для каждого бара в гистограмме с разбивкой по стеклу. Независимо от того, какой цвет я вижу в одном баре, его нельзя повторять ни в одном баре, ни в любом другом стеке.

Например: У меня есть 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);
    }
}