1

I am trying to create a chart with black background using JFreeChart. I am setting the chart background to black using

chart.getPlot().setBackgroundPaint(Color.BLACK);

This is the code:

XYSeries series = new XYSeries("USD-Toman");
series.add(0, 31000);
series.add(1, 31500);
series.add(2, 32000);
series.add(3, 31100);
series.add(4, 30500);
series.add(5, 29800);

XYDataset dataset = new XYSeriesCollection(series);
String[] labels = new String[series.getItemCount()];
labels[0] = "Saturday";
labels[1] = "Sunday";
labels[2] = "Monday";
labels[3] = "Tuesday";
labels[4] = "Wednesday";
labels[5] = "Thursday";

NumberAxis domain = new SymbolAxis("", labels);

NumberAxis range = new NumberAxis("");
XYSplineRenderer r = new XYSplineRenderer(15);
XYPlot xyplot = new XYPlot(dataset, domain, range, r);

JFreeChart chart = new JFreeChart(xyplot);

Font font = new Font("Dialog", Font.PLAIN, 20);
chart.getPlot().setBackgroundPaint(Color.BLACK);
xyplot.setDomainMinorGridlinesVisible(false);
xyplot.setDomainGridlinesVisible(false);
xyplot.setRangeGridlinesVisible(false);
xyplot.getDomainAxis().setTickLabelFont(font);
xyplot.getRangeAxis().setTickLabelsVisible(false);


NumberAxis yAxis = (NumberAxis) chart.getXYPlot().getRangeAxis();
yAxis.setAutoRangeIncludesZero(false);

XYSplineRenderer renderer = (XYSplineRenderer) chart.getXYPlot().getRenderer();
renderer.setSeriesVisible(0, true);
renderer.setAutoPopulateSeriesStroke(false);
renderer.setDefaultStroke(new BasicStroke(5.0f));
renderer.setSeriesPaint(0, new Color(39, 112, 96, 255));

renderer.setDefaultItemLabelGenerator(new StandardXYItemLabelGenerator());
renderer.setDefaultItemLabelPaint(Color.WHITE);


renderer.setDefaultItemLabelFont(font);

renderer.setSeriesItemLabelsVisible(0, true);


ChartUtils.saveChartAsPNG(new File("soft3d2.png"), chart, 1024, 768);

Although the background color is set to black, the result is striped black and grey:

striped background

any idea how to set it to black only?

trashgod
  • 203,806
  • 29
  • 246
  • 1,045
MehdiB
  • 870
  • 12
  • 34

0 Answers0