2014-10-06 70 views
0

我想根據值自動縮放圖表Y軸。如何使用afreechart庫自動縮放OHLC圖表中的Y軸

我確切的問題是解決這個問題的圖像,但這就是jfreechart庫和我試過的解決方案,但沒有奏效。

Auto-Scale Y-Axis in JfreeChart

這是我的代碼

 NumberAxis rangeAxis1 = new NumberAxis(); 
     rangeAxis1.setStandardTickUnits(createTickUnits()); 
     rangeAxis1.setAutoTickUnitSelection(true); 
     rangeAxis1.setAutoRange(true); 
     rangeAxis1.setAutoRangeIncludesZero(false); 
     rangeAxis1.setAxisLinePaintType(white); 
     rangeAxis1.setAxisLineStroke(1); 
     rangeAxis1.setTickMarkPaintType(white); 
     rangeAxis1.setTickMarkStroke(1); 
     rangeAxis1.setTickMarkOutsideLength(2); 
     rangeAxis1.setLabelPaintType(white); 
     rangeAxis1.setTickLabelPaintType(white); 
     rangeAxis1.setTickLabelInsets(new RectangleInsets(10, 0, 10, 0)); 
     rangeAxis1.setLimitAble(/*true*/false); 
     rangeAxis1.setLimitRange(20, 70); 


     HighLowRenderer renderer1 = new HighLowRenderer(); 



     renderer1.setBaseOutlinePaintType(white); 
     renderer1.setBaseOutlineStroke(1.0f); 

     renderer1.setOpenTickPaintType(red); 
     renderer1.setCloseTickPaintType(blue); 

     XYPlot subplot1 = new XYPlot(dataset1, null, rangeAxis1, renderer1); 


     subplot1.setDataset(1, dataset3); 
     subplot1.setRenderer(1, renderer3);*/ 

     subplot1.setBackgroundPaintType(black); 
     subplot1.setDomainGridlinePaintType(darkGreen); 
     subplot1.setRangeGridlinePaintType(darkGreen); 
     subplot1.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT); 
     subplot1.setOutlineVisible(true); 
     subplot1.setOutlinePaintType(white); 
     subplot1.setOutlineStroke(2.0f); 


     ValueAxis timeAxis = new DateAxis("Date"); 
     timeAxis.setAxisLinePaintType(white); 
     timeAxis.setAxisLineStroke(1); 

     timeAxis.setTickMarkPaintType(white); 
     timeAxis.setTickMarkStroke(1); 
     timeAxis.setTickMarkOutsideLength(2); 

     timeAxis.setLabelPaintType(white); 
     timeAxis.setTickLabelPaintType(white); 

     CombinedDomainXYPlot plot = new CombinedDomainXYPlot(timeAxis); 
     plot.setBackgroundPaintType(black); 
     plot.add(subplot1, 2); 

     AFreeChart chart= ChartFactory. 
     createHighLowChart("OHLCPreview","Time","Value",dataset1,false); 
     // setting chart 
     chart.setBackgroundPaintType(white); 

回答

1

最後我找到了解決辦法....

我其實重寫subplot1在用的代碼

的最後一行結束
AFreeChart chart= ChartFactory. 
createHighLowChart("OHLCPreview","Time","Value",dataset1,false); 

將其替換爲

AFreeChart chart = new AFreeChart(
"OHLCPreview", 
AFreeChart.DEFAULT_TITLE_FONT, 
plot, false);