sup*_*der 6 java jfreechart scale candlestick-chart
我JFreeChart用来在我的Java应用程序中创建烛台图表.但是,我的图表最终看起来像这样:
http://imageshack.us/photo/my-images/69/capturebhx.png/
我想自动缩放Y轴,使图表看起来更像这样:
http://imageshack.us/photo/my-images/717/capture2wl.png/
我想org.jfree.chart.axis.NumberAxis.configure()会这样做,但我不确定.我似乎无法找到一种方法来绑定我的JFreeChart对象,或ChartPanel对象与此NumberAxis对象.请帮助我,我迷路了,并且一直在寻找很长时间来尝试将这些物品绑在一起.或者,如果你能找到另一种方式,那也很棒!
一些代码:
...
private DefaultHighLowDataset dataset;
private JFreeChart chart;
private ChartPanel chart_panel;
...
// creates dataset, then chart from dataset, then chart_panel from chart
dataset = new DefaultHighLowDataset("", date, high, low, open, close, volume);
chart = ChartFactory.createCandlestickChart("Blank", "Time", "Price", dataset, false);
chart_panel = new ChartPanel(chart); // what you see in the images
...
Run Code Online (Sandbox Code Playgroud)
确保setAutoRangeIncludesZero(false)或"轴范围......被强制包含零".
附录:
我仍然不知道如何将
NumberAxis对象链接到ChartPanel对象或JFreeChart对象.
你可能要考虑的例子org.jfree.chart.demo和这里.如果这是terra incognita,我会推荐The JFreeChart Developer Guide †.
† 免责声明:与Object Refinery Limited无关; 只是一个满意的客户和非常小的贡献者.
小智 6
我是这样做的:
final JFreeChart chart = ChartFactory.createCandlestickChart(
"Candlestick Demo", "Time", "Price", dataset, false);
double lowestLow = getLowestLow(dataset);
double highestHigh = getHighestHigh(dataset);
chart.getXYPlot().getRangeAxis().setRange(lowestLow*0.95, highestHigh*1.05);
Run Code Online (Sandbox Code Playgroud)
我使用这些函数计算最低的最低价和最低的最高价
private double getLowestLow(DefaultHighLowDataset dataset){
double lowest;
lowest = dataset.getLowValue(0,0);
for(int i=1;i<dataset.getItemCount(0);i++){
if(dataset.getLowValue(0,i) < lowest){
lowest = dataset.getLowValue(0,i);
}
}
return lowest;
}
private double getHighestHigh(DefaultHighLowDataset dataset){
double highest;
highest = dataset.getHighValue(0,0);
for(int i=1;i<dataset.getItemCount(0);i++){
if(dataset.getLowValue(0,i) > highest){
highest = dataset.getHighValue(0,i);
}
}
return highest;
}
Run Code Online (Sandbox Code Playgroud)
这似乎给了我一个很好的烛台图表,它很好地利用了 Y 轴范围。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
15287 次 |
| 最近记录: |