JFreeChart柱状图中如何更改条形颜色

3
我正在开发一个应用程序,需要处理一些数据并制作条形图。但是条形的颜色必须与其所表示的数据相关联。
假设我有以下这种类型的数据: BANANA 430 WATER MELLON 300
现在我需要绘制一张条形图,我想用黄色油漆来涂抹香蕉条形,并使用绿色油漆来涂抹西瓜条形。我正在使用Java中的JFreeChart库。 我的研究告诉我需要创建自定义渲染器,但是如果我创建自定义渲染器,则颜色将随机出现在条形上。 是否有任何解决方案?

你的自定义渲染器是继承自AbstractRenderer还是它的子类? - peshkira
@peshkira,我刚刚发现了这段代码,它可能有用,我会试一试。<!-- language: lang-java --> Plot plot = bar.getPlot();
BarRenderer barRenderer = (BarRenderer)plot.getRenderer();
barRenderer.setSeriesPaint(0, Color.gray);
- Drag0
没错,这正是我想要的。如果你想更好地为它们添加样式,你也可以使用GradientPaint。祝你好运! - peshkira
@peshkira 我现在再次遇到问题了。我向数据集添加了许多值,就像这样:dataset.addValue(SOME_INTEGER, "series1", ""); dataset.addValue(SOME_INTEGER2, "series2", ""); 现在我该如何找出使用setSeriesPaint()方法设置颜色的系列? setSeriesPaint()需要两个参数,第一个参数是标记我正在引用哪个系列的整数..例如:renderer.setSeriesPaint(series, paint); 这里的系列参数是整数..如果我只有系列的字符串名称,我不知道该如何获取该整数。 - Drag0
renderer.setSeriesPaint(0, paint) 将更改“series1”的颜色,而 renderer.setSeriesPaint(1, paint) 将更改“series2”的颜色。基本上这取决于您引入系列的顺序。 - peshkira
2个回答

4

2

这里有一个演示,你可以看到如何完成它。正如上面的注释所说,您必须按照引入它们的顺序将paints添加到系列中(0是第一个,1是第二个等等)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接