JFreeChart BarChart -> NO gradiente

mi gráfico de barras siempre se dibuja con un degradado de color por defecto. Solo quiero un color simple sin ningún efecto de estilo .

Alguien puede ayudar ?

Código:

final JFreeChart chart = ChartFactory.createBarChart( "", // chart title xLabel, // domain axis label yLabel, // range axis label dataset, // data PlotOrientation.VERTICAL, // orientation true, // include legend false, // tooltips? false // URLs? ); final CategoryPlot plot = chart.getCategoryPlot(); // SOMETHING HAS TO BE DONE HERE showChart(chart); // Simply shows the chart in a new window 

Gracias

El problema radica en el BarPainter que estás usando. El valor predeterminado de JFreeChart versión 1.0.13 es usar GradientBarPainter que agrega un aspecto metálico a la barra. Si desea el aspecto “antiguo”, la solución es usar el StandardBarPainter .

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

Deberias hacer eso.

Alternativamente, si quiere usar el BarRenderer de JFreeChart, podría forzarlo a usar el StandardBarPainter llamando al método estático setDefaultBarPainter() antes de inicializar su procesador.

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

Si desea un mayor control de la tabla, siempre puede construirla desde cero en lugar de usar ChartFactory , pero eso requiere mucho código adicional.

Antes de crear el gráfico desde ChartFactory puede establecer el tema del gráfico:

 ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme()); 

El valor predeterminado es JFreeTheme, que agrega el degradado. Los siguientes temas están disponibles:

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

El código fuente de org.jfree.chart.demo.BarChartDemo1 muestra cómo configurar los colores de la serie. Solo especifique colores lisos en lugar de degradados.

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

Corrección: la clave para la respuesta útil de defaultBarPainter se puede encontrar en la inicialización de defaultBarPainter en BarRenderer .