Java 更改JFreeChart条形图中的条形图颜色

Java 更改JFreeChart条形图中的条形图颜色,java,jfreechart,Java,Jfreechart,我正在制作一个应用程序,它需要一些数据,它需要制作一个条形图,但条形图的颜色必须与它所表示的数据相关 假设我有这样的数据: 香蕉430 沃特梅隆300 现在我应该做一个条形图,我想用黄色颜料画香蕉条,用绿色颜料画水梅隆条。我正在使用java中的JFreeChart库。 我的研究让我制作了自定义渲染器,但是如果我制作了自定义渲染器,颜色将随机出现在条形图上。 有什么解决办法吗?也许这会有所帮助 请参见如何使用下面的代码: final CategoryItemRenderer rendere

我正在制作一个应用程序,它需要一些数据,它需要制作一个条形图,但条形图的颜色必须与它所表示的数据相关

假设我有这样的数据: 香蕉430 沃特梅隆300

现在我应该做一个条形图,我想用黄色颜料画香蕉条,用绿色颜料画水梅隆条。我正在使用java中的JFreeChart库。 我的研究让我制作了自定义渲染器,但是如果我制作了自定义渲染器,颜色将随机出现在条形图上。 有什么解决办法吗?

也许这会有所帮助

请参见如何使用下面的代码:

    final CategoryItemRenderer renderer = new CustomRenderer(
        new Paint[] {Color.red, Color.blue, Color.green,
            Color.yellow, Color.orange, Color.cyan,
            Color.magenta, Color.blue}
    );

这是一个演示,您可以在其中看到如何做到这一点。在上面的评论中,您必须在介绍油漆时将油漆添加到系列中(0是第一个,1是第二个,依此类推)。

您是否从AbstractRenderer或它的子类扩展到CustomRenderer?@peshkira我刚刚找到这段代码,它可能会工作,我将尝试Plot=bar.getPlot();BarRenderer BarRenderer=(BarRenderer)plot.getRenderer();Ballenderer.setSeriesPaint(0,颜色。灰色);是的,这就是我的想法。如果希望更好地设置它们的样式,也可以使用GradientPaint。祝你好运@peshkira我现在又遇到了一个问题,所以我向数据集添加了许多值。如下所示:dataset.addValue(一些整数,“series1”和“);addValue(一些整数2,“series2”和“);我现在如何通过setSeriesPaint()方法确定设置颜色的对象?setSeriesPoint()接受两个参数,第一个是整数,它标记我引用的序列。。例如:renderer.setSeriesPaint(series,paint);此处的系列参数为整数。。如果我只有序列的字符串名,我不知道如何得到整数。在你的示例中:renderer.setSeriesPaint(0,paint)将更改“series1”的颜色,renderer.setSeriesPaint(1,paint)将更改“series2”的颜色。基本上,这取决于你介绍这个系列的顺序。