2

我创建了一个XYChart数值不同的值(例如温度和压力),所以我想在我的图表旁边画出我自己的轴。要执行以下操作,我必须取消显示 YAxis,我应该怎么做?

4

3 回答 3

8

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

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

轴仍将存在,但未显示。

于 2013-06-29T09:43:28.167 回答
2

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

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

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

于 2014-06-09T18:10:58.093 回答
1

已解决:我让它为垂直堆叠的两个图表共享一个共同的x轴:

在此处输入图像描述

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

  2. 然后像这样在第二个图表中隐藏 x 轴:

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);
    
于 2016-06-15T15:47:11.957 回答