我需要为堆积条形图中的每个条形设置唯一的颜色。无论我在一个条中看到什么颜色,它都不应该在任何其他条或任何其他堆栈中重复。
例如:
我的报告中有 5 个栏。每个栏有 3 个不同的堆栈。我想将红色相关颜色应用于第一个条形及其堆栈。第二条应该有蓝色相关的颜色。 ETC..
如附图所示。该图显示了我们想要的一个非常基本的要求。刚刚使用普通的 MS Paint 创建。堆叠条形 MS Paint 图像 http://www.freeimagehosting.net/image.php?65f6dcd37a.jpg
您可以覆盖getItemPaint() http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/renderer/AbstractRenderer.html#getItemPaint%28int,%20int%29的方法StackedBarRenderer() http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/renderer/category/StackedBarRenderer.html返回所需的颜色。您可以使用获取HSB颜色() http://java.sun.com/javase/6/docs/api/java/awt/Color.html#getHSBColor%28float,%20float,%20float%29通过改变给定色调的亮度或饱和度来构造相关颜色。
附录:下面的示例将打印出每个项目的行、列和颜色。您可以使用结果作为要返回哪种自定义颜色的指南。看BarChartDemo1 https://github.com/jfree/jfree-demos/blob/master/src/main/java/org/jfree/chart/demo/BarChartDemo1.java对于样本数据集。
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);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)