如何在ireport的堆积条形图中为条形设置不同的颜色?

Use*_*034 3 jfreechart ireport stackedbarseries

我需要为堆积条形图中的每个条形设置一种独特的颜色.无论我在一个栏中看到什么颜色,都不应该在任何其他栏或任何其他堆栈中重复.

例如:报告中有5个条形图.每个酒吧有3个不同的堆栈.我想将红色相关颜色应用到第一个条形图及其堆栈.第二个栏应该有蓝色相关的颜色.等.它在附图中显示.图像显示了我们想要的基本要求.刚刚使用普通的ms画笔创建. Stacked Bar MS Paint Image

tra*_*god 6

您可以重写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);
    }
}
Run Code Online (Sandbox Code Playgroud)