2016-05-13 8 views
1

Ich versuche, mehrere Diagramme zusammenzuführen, um ein einzelnes Diagramm zu erstellen. Die einzelnen Diagramme haben einen weißen Hintergrund, aber irgendwie wird mein zusammengefügtes Diagramm trotz Verwendung von setBackgroundpaint api grau unterlegt.jfreetchart setBackgroundpaint funktioniert nicht

public static String mergeXYGraphs(List<XYPlot> plots, String title, boolean legend, int width, int height) throws IOException 
{ 
    if(plots != null && !plots.isEmpty()) 
    { 
     XYPlot base = plots.get(0); 
     for(int i = 1; i< plots.size(); i++) 
     { 
      base.setDataset(i, plots.get(i).getDataset()); 
      base.setRenderer(i, plots.get(i).getRenderer()); 
     } 
     JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, base, legend); 
     setDateAxis(base); 
     chart.getXYPlot().setBackgroundPaint(Color.WHITE); 
     return saveImageFile(chart, "merged", "charts", width, height); 
    } 
    return ""; 
} 


private static void setDateAxis(XYPlot plot) 
{ 
    DateAxis domainAxis = new DateAxis(); 
    domainAxis.setAutoTickUnitSelection(true); 
    domainAxis.setDateFormatOverride(new SimpleDateFormat("dd/MM")); 
    plot.setDomainAxis(domainAxis); 
} 

PS: base.setBackgroundPaint (Farbe.WHITE); funktioniert auch nicht

enter image description here

Antwort

1

So stellt sich heraus, dass wir Farben auf verschiedenen Ebenen auf jfreechart zu setzen haben die Farben der verschiedenen Teile zu steuern.

Im Bild oben ist die Hintergrundfarbe des Panels weiß, die Hintergrundfarbe des Diagramms jedoch nicht. Also musste ich folgendes verwenden:

chart.setBackgroundPaint(Color.WHITE);