2012-04-06 103 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