从JavaFX图表中删除轴

时间:2013-06-28 22:35:18

标签: java charts javafx-2 javafx

我创建了一个XYChart,数值不同(例如温度和压力),所以我想在我的图表旁边绘制自己的轴。要做到以下几点我不知道YAxis,我应该怎么做?

3 个答案:

答案 0 :(得分:6)

使用技巧:图表需要Y轴保持原位,以便知道在何处呈现您的内容。但是,你可以隐藏它。隐藏刻度标签并使用以下代码将轴的不透明度设置为0:

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

轴仍然在那里,但未显示。

答案 1 :(得分:1)

我发现如果我使用以下代码隐藏图表:

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

然后我在底部减少约10个像素的空白区域。如果空间是您的应用程序的问题,那么您可以使用css偏移来纠正它。该解决方案可能具有更可预测的偏移。

答案 2 :(得分:1)

已解决:我将此工作用于分享垂直堆叠的两个图表的常见 x 轴:

enter image description here

  1. 创建两个图表,每个图表都有自己相同的x轴对象副本,设置相同的上限和下限(可选择通过绑定)。

  2. 然后在第二个图表中隐藏x轴,如下所示:

  3. chart = new LineChart<Number,Number>(xaxis2,yaxis2) {
    {// hide xAxis in constructor, since not public
                getChartChildren().remove(getXAxis());
                // not getPlotChildren()
          }
    };
    
    1. 您希望将y轴的宽度设置为相同,例如

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