2012-04-12 22 views
9

He creado el gráfico de líneas XY usando JFreeChart, tengo dos conjuntos de datos, quiero que ambas líneas sean de diferentes colores. He intentado utilizar después de código-Color diferente para diferentes series en el gráfico XYline JFreeChart

XYPlot plot = chart.getXYPlot(); 
    XYItemRenderer xyir = plot.getRenderer(); 
    xyir.setSeriesPaint(0, Color.GREEN); 
    plot.setDataset(0, xyDataset1); 

    xyir.setSeriesPaint(1, Color.blue); 
    plot.setDataset(1, xyDataset2); 

También he intentado usar siguiente código, donde estoy usando diferentes procesador (no sé si esta es la forma correcta de hacerlo) -

XYPlot plot1 = chart.getXYPlot(); 
    XYPlot plot2 = chart.getXYPlot(); 

    XYItemRenderer xyir1 = plot1.getRenderer(); 
    xyir1.setSeriesPaint(0, Color.GREEN); 
    plot1.setDataset(0, xyDataset1); 

    XYItemRenderer xyir2 = plot2.getRenderer(); 
    xyir2.setSeriesPaint(1, Color.blue); 
    plot2.setDataset(1, xyDataset2); 

En ambos casos está imprimiendo ambas líneas en color azul. ¿Qué ocurre? ¿¿Alguna sugerencia??

Respuesta

17

encontrado la solución, que funciona para mí, utilizando dos Procesador diferente, antes no lo hacía properly--

XYPlot plot = chart.getXYPlot(); 
    plot.setDataset(0, xyDataset1); 
    plot.setDataset(1, xyDataset2); 
    XYLineAndShapeRenderer renderer0 = new XYLineAndShapeRenderer(); 
    XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer(); 
    plot.setRenderer(0, renderer0); 
    plot.setRenderer(1, renderer1); 
    plot.getRendererForDataset(plot.getDataset(0)).setSeriesPaint(0, Color.red); 
    plot.getRendererForDataset(plot.getDataset(1)).setSeriesPaint(0, Color.blue); 
2

El enfoque mostrado funciona en este example, y un renderizador único debería ser suficiente. Un sscce puede ayudar a aislar el problema.

Para controlar elementos individuales, puede anular getItemPaint(), que se muestra here.

-1

intenta establecer la pintura Series a null en el procesador de setSeriesPaint(null);

Si echas un vistazo a la fuente, primero verifica si la pintura es !null, luego utiliza el color base.

Si null utiliza los colores asociados con la serie de tiempo de una tabla de búsqueda.

Cuestiones relacionadas