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

时间:2010-06-09 05:53:34

标签: jfreechart ireport stackedbarseries

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

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

1 个答案:

答案 0 :(得分: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);
    }
}