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
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