docs: def distance_landscape_as_3d_data(self, x_axis, y_axis):
          """
          Returns the distance landscape as three-dimensional data for the specified projection.
  
          :param x_axis: variable to be plotted on the x axis of projection
          :param y_axis: variable to be plotted on the y axis of projection
          :return: a 3-tuple (x, y, z) where x and y are the lists of coordinates and z the list of distances at
                   respective coordinates
          """
          if not self.distance_landscape:
              raise Exception('No distance landscape returned. Re-run inference with return_distance_landscape=True')
  
          index_x = self.parameter_index(x_axis)
          index_y = self.parameter_index(y_axis)
  
          x = []
          y = []
          z = []
          for parameters, initial_conditions, distance in self.distance_landscape:
              all_values = list(parameters) + list(initial_conditions)
              x.append(all_values[index_x])
              y.append(all_values[index_y])
              z.append(distance)
  
          return x, y, z