code: def plotComparisonFigure(
      Xtrain,
      sparse_model,
      exact_model,
      ax_predictions,
      ax_inducing_points,
      ax_optimization,
      iterations,
      log_likelihoods,
      hold_out_likelihood,
      title=None,
  ):
      plotPredictions(ax_predictions, exact_model, "g", label="Exact")
      plotPredictions(
          ax_predictions, sparse_model, "b", label="Approximate"
      )
      ax_predictions.legend(loc=9)
      ax_predictions.plot(
          sparse_model.inducing_variable.Z.numpy(),
          -1.0 * np.ones(Xtrain.shape),
          "ko",
      )
      ax_predictions.set_ylim(predict_limits)
      ax_inducing_points.plot(
          Xtrain, sparse_model.inducing_variable.Z.numpy(), "bo"
      )
      xs = np.linspace(
          ax_inducing_points.get_xlim()[0],
          ax_inducing_points.get_xlim()[1],
          200,
      )
      ax_inducing_points.plot(xs, xs, "g")
      ax_inducing_points.set_xlabel("Optimal inducing point position")
      ax_inducing_points.set_ylabel("Learnt inducing point position")
      ax_inducing_points.set_ylim(inducing_points_limits)
      ax_optimization.plot(
          iterations, -1.0 * np.array(log_likelihoods), "g-"
      )
      ax_optimization.set_ylim(optimization_limits)
      ax2 = ax_optimization.twinx()
      ax2.plot(iterations, -1.0 * np.array(hold_out_likelihood), "b-")
      ax_optimization.set_xlabel("Minimization iterations")
      ax_optimization.set_ylabel("Minimization objective", color="g")
      ax2.set_ylim(hold_out_limits)
      ax2.set_ylabel("Hold out negative log likelihood", color="b")
  
file_path: GPflow/doc/sphinx/notebooks/theory/FITCvsVFE.py
imports: import numpy
  import tensorflow
  import gpflow
  from gpflow.ci_utils import reduce_in_tests
label_desc: Use image node_id 11 for calling a global function with example usage: plotComparisonFigure(Xtrain, sparse_model, exact_model, ax_predictions, ax_inducing_points, ax_optimization, iterations, log_likelihoods, hold_out_likelihood, title) without return types