code: def slice_along_axis(dataset, n=5, axis='x', tolerance=None,
                           generate_triangles=False, contour=False):
          
          axes = {'x':0, 'y':1, 'z':2}
          output = vtki.MultiBlock()
          if isinstance(axis, int):
              ax = axis
              axis = list(axes.keys())[list(axes.values()).index(ax)]
          elif isinstance(axis, str):
              try:
                  ax = axes[axis]
              except KeyError:
                  raise RuntimeError('Axis ({}) not understood'.format(axis))
          # get the locations along that axis
          if tolerance is None:
              tolerance = (dataset.bounds[ax*2+1] - dataset.bounds[ax*2]) * 0.01
          rng = np.linspace(dataset.bounds[ax*2]+tolerance, dataset.bounds[ax*2+1]-tolerance, n)
          center = list(dataset.center)
          # Make each of the slices
          for i in range(n):
              center[ax] = rng[i]
              slc = DataSetFilters.slice(dataset, normal=axis, origin=center,
                      generate_triangles=generate_triangles, contour=contour)
              output[i, 'slice%.2d'%i] = slc
          return output
docs: Create many slices of the input dataset along a specified axis.
  
          Parameters
          ----------
          n : int
              The number of slices to create
  
          axis : str or int
              The axis to generate the slices along. Perpendicular to the slices.
              Can be string name (``'x'``, ``'y'``, or ``'z'``) or axis index
              (``0``, ``1``, or ``2``).
  
          tolerance : float, optional
              The toleranceerance to the edge of the dataset bounds to create the slices
  
          generate_triangles: bool, optional
              If this is enabled (``False`` by default), the output will be
              triangles otherwise, the output will be the intersection polygons.
  
          contour : bool, optional
              If True, apply a ``contour`` filter after slicing