【问题标题】:How to set different colors to the bars in stacked bar chart in ireport?如何在 ireport 中为堆积条形图中的条形设置不同的颜色?
【发布时间】:2010-06-09 05:53:34
【问题描述】:

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

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

【问题讨论】:

    标签: jfreechart ireport stackedbarseries


    【解决方案1】:

    您可以覆盖StackedBarRenderer()getItemPaint() 方法以返回所需的颜色。您可以使用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);
        }
    }
    

    【讨论】:

    • 非常感谢您的回答。如果我没有正确传达要求,我很抱歉。这里还有一些输入: 1. 堆叠条应该只有 3 个条。每个酒吧有 3 堆。 2.所有的堆栈颜色都应该是唯一的。每个条形图和堆栈代表唯一的参数。堆积条形图的问题是条形图中的每个堆栈在所有条形图上都是相同的。正如我的要求所说,每个堆栈和每个条都不同。第一个柱子的第一个堆栈参数与第二个和第三个柱子的第一个堆栈参数不同。
    • @Purushotham:我已经在上面详细说明了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2020-12-29
    相关资源
    最近更新 更多