我正在尝试合并多个图表来创建单个图表。各个图表都有白色背景,但不管怎么说,尽管使用了setBackgroundpaint api,但我的合并图表最终会变成灰色背景。
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(Color.WHITE);不起作用
答案 0 :(得分:1)
事实证明,我们必须在jfreechart上设置不同级别的颜色,以控制不同部分的颜色。
在上图中,面板的背景颜色为白色,但图表的背景颜色不是。所以,我不得不使用:
chart.setBackgroundPaint(Color.WHITE);