如果存在不可见系列,如何自动缩放JavaFX折线图?

如果存在不可见系列,如何自动缩放JavaFX折线图?,javafx,linechart,Javafx,Linechart,我需要在折线图上显示/隐藏序列的可能性。现在我是这样做的: series.getNode().setVisible(false); 但是,尽管在此之后序列是不可见的,图表轴自动范围仍然会考虑序列数据的范围。我还设置了托管资产: series.getNode().setVisible(false); series.getNode().setManaged(false); 但是没有成功。那么,是否有某种方法来隐藏一个系列并将其从AxOutOracle?< P>中排除,看来目前唯一的方法是扩展线形

我需要在折线图上显示/隐藏序列的可能性。现在我是这样做的:

series.getNode().setVisible(false);
但是,尽管在此之后序列是不可见的,图表轴自动范围仍然会考虑序列数据的范围。我还设置了托管资产:

series.getNode().setVisible(false);
series.getNode().setManaged(false);

但是没有成功。那么,是否有某种方法来隐藏一个系列并将其从AxOutOracle?

< P>中排除,看来目前唯一的方法是扩展线形图并重写UpDATEAxISWAN来修改它,只考虑可见的系列:

public class MLineChart<X, Y> extends LineChart<X, Y> {

  public MLineChart(@NamedArg("xAxis") Axis<X> xAxis, @NamedArg("yAxis") Axis<Y> yAxis) {
    super(xAxis, yAxis);
  }

  @Override
  protected void updateAxisRange() {
    final Axis<X> xa = getXAxis();
    final Axis<Y> ya = getYAxis();
    List<X> xData = null;
    List<Y> yData = null;
    if (xa.isAutoRanging()) xData = new ArrayList<X>();
    if (ya.isAutoRanging()) yData = new ArrayList<Y>();
    if (xData != null || yData != null) {
      for (Series<X, Y> series : getData()) {
        if (series.getNode().isVisible()) { // consider only visible series
          for (Data<X, Y> data : series.getData()) {
            if (xData != null) xData.add(data.getXValue());
            if (yData != null) yData.add(data.getYValue());
          }
        }
      }
      // RT-32838 No need to invalidate range if there is one data item - whose value is zero.
      if (xData != null && !(xData.size() == 1 && getXAxis().toNumericValue(xData.get(0)) == 0)) {
        xa.invalidateRange(xData);
      }
      if (yData != null && !(yData.size() == 1 && getYAxis().toNumericValue(yData.get(0)) == 0)) {
        ya.invalidateRange(yData);
      }

    }
  }
}