我正在使用 JFreeChart 制作(时间序列)山图。所以,我做了 2 个时间序列——数据 1 和所有范围值的数据都为零。
TimeSeriesCollection dataset2 = new TimeSeriesCollection();
dataset2.addSeries(close); //my data series/
dataset2.addSeries(zeroseries); /zero series/
然后,我使用 XYDifferenceRenderer 用我想要的颜色填充 2 个系列之间的空白。
创建图表和设置渲染器的代码:
final JFreeChart chart = garch_differencechart(url);//my method to create the chart//
final ChartPanel chartPanel = new ChartPanel(chart);
final XYPlot plot = (XYPlot) chart.getPlot();
chart.setBackgroundPaint(Color.WHITE);
plot.setBackgroundPaint(Color.WHITE);
XYDifferenceRenderer renderer = new XYDifferenceRenderer();
renderer.setPositivePaint(new Color(202, 225, 255));
renderer.setSeriesPaint(0, new Color(72, 118, 255));
renderer.setSeriesStroke(0, new BasicStroke(1.2f));
plot.setRenderer(renderer);
设置 GridLines 可见的代码:
plot.setDomainGridlinesVisible(true);
plot.setDomainGridlinePaint(new Color(234,234,234));
plot.setDomainGridlineStroke(new BasicStroke(0.5f));
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(new Color(234,234,234));
plot.setRangeGridlineStroke(new BasicStroke(0.5f));
但是,渲染器覆盖了绘图的网格线(似乎网格线是在 XYDifferenceRenderer 之前绘制的)。
如何在 XYDifferenceRenderer 上获得带有网格线的绘图?