Java JFreeChart条形图->;无梯度

Java JFreeChart条形图->;无梯度,java,colors,jfreechart,bar-chart,Java,Colors,Jfreechart,Bar Chart,默认情况下,我的条形图始终使用渐变色绘制。我只想要一个没有任何风格效果的简单颜色 有人能帮忙吗 代码: 感谢提供较旧版本的演示如何设置系列颜色。只需指定普通颜色而不是渐变 renderer.setSeriesPaint(0, Color.red); renderer.setSeriesPaint(1, Color.green); renderer.setSeriesPaint(2, Color.blue); 更正:@Jes有用的关键在于初始化inBallenderer问题在于您使用的BarPa

默认情况下,我的条形图始终使用渐变色绘制。我只想要一个没有任何风格效果的简单颜色

有人能帮忙吗

代码:

感谢提供较旧版本的演示如何设置系列颜色。只需指定普通颜色而不是渐变

renderer.setSeriesPaint(0, Color.red);
renderer.setSeriesPaint(1, Color.green);
renderer.setSeriesPaint(2, Color.blue);

更正:@Jes有用的关键在于初始化in
Ballenderer

问题在于您使用的
BarPainter
。JFreeChart 1.0.13版的默认设置是使用
GradientBarPainter
,它为条形图添加了金属色外观。如果您想要“旧”外观,解决方案是使用
StandardBarPainter

final CategoryPlot plot = chart.getCategoryPlot();
((BarRenderer) plot.getRenderer()).setBarPainter(new StandardBarPainter());
应该这样做

或者,如果要使用JFreeChart的
barnderer
,可以在初始化渲染器之前通过调用静态方法
setDefaultBarPainter()
强制它使用
StandardBarPainter

final CategoryPlot plot = chart.getCategoryPlot();
BarRenderer.setDefaultBarPainter(new StandardBarPainter());
((BarRenderer) plot.getRenderer()).setBarPainter(new BarPainter());

如果您想要更多地控制图表,您可以从头开始构建图表,而不是使用
ChartFactory
,但这确实需要大量额外的代码。

在从ChartFactory创建图表之前,您可以设置图表主题:

ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());
默认值是添加渐变的JFreeTheme。提供以下主题:

ChartFactory.setChartTheme(StandardChartTheme.createJFreeTheme());
ChartFactory.setChartTheme(StandardChartTheme.createDarknessTheme());

粘贴你的代码。在大多数情况下,您应该添加一些代码使其具有渐变效果,例如:GradientPaint+1表示最真实的标题。Web2.0再见!也不起作用,但仍然使用渐变绘制所有内容。不幸的是,我还不能上传图片:(此外,如果有三列以上的图片,上面的解决方案会怎么样?图片会很好,但是代码会更好。如果你什么都不做,你应该得到指定的颜色。太好了!我找了很长时间的解决方案!这是解决方案的荣誉“默认”(我认为)条形图具有这种非常廉价的外观。该解决方案在使用StackedBarChart的情况下对我有所帮助,而StackedBarChart不受在渲染器中更改barPainter的影响。可能是我访问了错误的渲染器。尽管如此,这还是有帮助的。
ChartFactory.setChartTheme(StandardChartTheme.createJFreeTheme());
ChartFactory.setChartTheme(StandardChartTheme.createDarknessTheme());