java colors jfreechart bar-chart

java - JFreeChart BarChart-> NO gradiente



colors bar-chart (3)

Mi gráfico de barras siempre se dibuja con un color degradado de forma predeterminada. Solo quiero un color simple sin efectos estilizados .

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


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 gradiente. 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. Simplemente especifique colores planos en lugar de gradientes.

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

Corrección: la clave de la útil answer @ Jes se puede encontrar en la inicialización de defaultBarPainter en BarRenderer .


El problema radica en el BarPainter que está utilizando. 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 utilizar el StandardBarPainter .

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

Deberias hacer eso.

Alternativamente, si desea 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 tener más control sobre el gráfico, siempre puede ChartFactory desde cero en lugar de usar ChartFactory , pero eso requiere mucho más código.