How to set different colors to the bars in stacked bar chart in ireport?
ireport, jfreechart, stackedbarseries
Solution
You can override the `getItemPaint()` method of `StackedBarRenderer()` to return the desired color. You can use getHSBColor() to construct related colors by varying the brightness or saturation for a given hue.
Addendum: The example below will print out the row, column and color for each item. You can use the result as a guide to which custom color you want to return. See `BarChartDemo1` for a sample dataset.
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);
}
}
Problem
I need to set a unique color to each bar in the stacked bar chart. Whatever the color I see in one bar it shouldn't be repeated in any other bar or any other stack. For example: I have 5 bars in the report. Each bar has 3 different stacks. I want to apply a red related colors to the first bar and its stacks. Second bar should have blue related colors. etc.. It is showed in the attached image. The image shows a very basic requirement what we want. Just created using a normal ms paint. Stacked Bar MS Paint Image