2012-04-12 13 views
9

Ich habe XY Liniendiagramm mit JFreeChart erstellt, mit zwei Datensätzen, ich möchte beide Linien in verschiedenen Farben. Ich habe versucht, folgende Code- mitVerschiedene Farben für verschiedene Serien in XYline-Diagramm 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); 

Auch habe ich versucht, folgenden Code verwenden, wo ich verschiedene Renderer bin mit (weiß nicht, ob das richtig so, wie es zu tun ist) -

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); 

In in beiden Fällen druckt er beide Linien in blauer Farbe. Was ist los ?? Irgendwelche Vorschläge??

Antwort

17

die Lösung gefunden, funktioniert es für mich zwei verschiedene Renderer verwenden, früher ich nicht tat es

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

Der gezeigte Ansatz funktioniert in diesem example, und ein einzelner Renderer sollte ausreichen. Ein sscce kann helfen, das Problem zu isolieren.

Um einzelne Elemente zu steuern, können Sie getItemPaint(), here, überschreiben.

-1

Versuchen Sie, die Series Farbe zu null in den Renderer setSeriesPaint(null);

zu setzen properly-- Wenn Sie sich die Quelle anschauen, prüft sie zunächst, ob die Farbe !null ist, und verwendet dann die Grundfarbe.

Wenn null verwendet wird, verwendet es die Farben, die mit der Zeitserie aus einer Nachschlagetabelle verknüpft sind.

Verwandte Themen