2013-06-28 31 views
1

我創建了一個具有不同數值(例如溫度與壓力)的XYChart,所以我想在我的圖表旁畫出自己的軸。要做到以下,我必須解釋YAxis,我該怎麼做?從JavaFX中移除一個軸圖

回答

6

通過使用技巧:圖表需要Y軸保持原位,以便它知道在哪裏呈現您的內容。但是,你可以隱藏它。隱藏刻度標記和使用此代碼軸線不透明度設置爲0:

chart.getYAxis().setTickLabelsVisible(false); 
    chart.getYAxis().setOpacity(0); 

的軸將仍然存在,但是未示出。

0

我發現,如果我用下面的代碼隱藏圖表:

chart.getXAxis().setTickLabelsVisible(false); 
chart.getXAxis().setTickMarkVisible(false); 
((Path)chart.getXAxis().lookup(".axis-minor-tick-mark")).setVisible(false); 

然後我得到的底部約10〜少像素空白。如果空間是您的應用程序的問題,那麼您可以使用css偏移量來糾正它。該解決方案可能具有更多可預測的偏移量。

1

解決:我得到這個爲共享一個公共X - 軸的兩個圖表垂直堆疊的工作:

enter image description here

  1. 與自己完全相同的副本創建兩個圖表,每的x軸對象,設置相同的上限和下限(可選地通過綁定)。

  2. 然後隱藏x軸的第二圖表中所示:

chart = new LineChart<Number,Number>(xaxis2,yaxis2) { 
{// hide xAxis in constructor, since not public 
      getChartChildren().remove(getXAxis()); 
      // not getPlotChildren() 
     } 
}; 
  • 您將要設置的寬度你的Y軸是相同的,例如

    int w = 60; 
    yaxis.setMaxWidth(w); 
    yaxis.setMinWidth(w); 
    yaxis.setPrefWidth(w); 
    yaxis2.setMaxWidth(w); 
    yaxis2.setMinWidth(w); 
    yaxis2.setPrefWidth(w);