2012-04-06 96 views
5

enter image description hereY轴范围在XYChart

enter image description here

我有一个缩放问题XYChart绘制:从0.4和0.5和对一个场景绘当我得到作为最小Y值在浮点值我的数据系列的范围1,所以我看不到任何绘图。

如果我系列使用数据具有更高的值,例如> 100

如何设置Y不出现此问题轴根据数据系列值中使用?

感谢

回答

5

正如Java文档NumberAxis构造函数声明:public NumberAxis(double lowerBound, double upperBound, double tickUnit) - 你可以为你提供轴底部和下限。

NumberAxis xAxis = new NumberAxis("X-Axis", 0d, 1d, .05); 
    NumberAxis yAxis = new NumberAxis("Y-Axis", 0d, 1d, .05); 
    ObservableList<XYChart.Series> data = FXCollections.observableArrayList(
      new ScatterChart.Series("Series 1", FXCollections.<ScatterChart.Data>observableArrayList(
      new XYChart.Data(.1, .1), 
      new XYChart.Data(.2, .2)))); 
    ScatterChart chart = new ScatterChart(xAxis, yAxis, data); 
    root.getChildren().add(chart); 

更新:图表的自动调节对我的作品还有,看下代码和屏幕截图。您可能想要升级到JavaFX 2.1或更高版本。

NumberAxis xAxis = new NumberAxis(); 
    NumberAxis yAxis = new NumberAxis(); 
    ObservableList<XYChart.Series> data = FXCollections.observableArrayList(
      new ScatterChart.Series("Series 1", FXCollections.<ScatterChart.Data>observableArrayList(
      new XYChart.Data(.01, .1), 
      new XYChart.Data(.1, .11), 
      new XYChart.Data(.12, .12), 
      new XYChart.Data(.18, .15), 
      new XYChart.Data(.2, .2)))); 
    XYChart chart = new LineChart(xAxis, yAxis, data); 
    root.getChildren().add(chart); 

linechart

+0

谢谢谢尔盖的盛情回复:我想做到的是根据数据集自动设置我的Y范围是什么,即我不想每次改变时间集合Y AXYS数据集。因此,例如,我使用的数据集范围从0.4到0.5,我的场景图应该在这些值内显示最小值和最大值(但固定的%,2%,对于Y上的最小值和最大值),同样应该如果我使用的数据集范围从100到1500 – 2012-04-06 13:27:16

+0

我已经更新了答案,请看看。 – 2012-04-06 16:25:45

+0

非常好,非常感谢,我很长时间在寻找这个答案:) – 2013-04-01 17:06:36