1
我使用JFreeChart繪製(時間序列)山峯圖。所以,我做了2個時間序列 - 數據1和所有範圍值都是零。用XYDifferenceRenderer頂部的網格線繪製
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);
代碼來設置網格線可見:
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頂部網格線的情節?
@trashgold:我按問題編輯! – 2012-04-04 05:18:43
是的,在HSB空間中,這些顏色非常接近,都具有非常低的飽和度。爲了將網格線置於頂部,您必須更改['draw()']中指定的渲染順序(http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/plot/ XYPlot.html#繪製%28java.awt.Graphics2D,%20java.awt.geom.Rectangle2D,%20java.awt.geom.Point2D,%20org.jfree.chart.plot.PlotState,%20org.jfree.chart.plot。 PlotRenderingInfo%29)。 – trashgod 2012-04-04 05:22:45
@trashgold:那麼,我必須繼承XYPlot以覆蓋draw()方法嗎?但我無法在JFreeChart類中找到任何方法來設置我的情節,如:chart.setPlot(//我的子類//)? – 2012-04-04 05:31:01