docs: def contourf(self, *args, **kwargs):
          """Plot contours.
  
          If a 3D or higher Data object is passed, a lower dimensional
          channel can be plotted, provided the ``squeeze`` of the channel
          has ``ndim==2`` and the first two axes do not span dimensions
          other than those spanned by that channel.
  
          Parameters
          ----------
          data : 2D WrightTools.data.Data object
              Data to plot.
          channel : int or string (optional)
              Channel index or name. Default is 0.
          dynamic_range : boolean (optional)
              Force plotting of all contours, overloading for major extent. Only applies to signed
              data. Default is False.
          autolabel : {'none', 'both', 'x', 'y'}  (optional)
              Parameterize application of labels directly from data object. Default is none.
          xlabel : string (optional)
              xlabel. Default is None.
          ylabel : string (optional)
              ylabel. Default is None.
          **kwargs
              matplotlib.axes.Axes.contourf__ optional keyword arguments.
  
              __ https://matplotlib.org/api/_as_gen/matplotlib.axes.Axes.contourf.html
  
          Returns
          -------
          matplotlib.contour.QuadContourSet
          """
          args, kwargs = self._parse_plot_args(*args, **kwargs, plot_type="contourf")
          # Overloading contourf in an attempt to fix aliasing problems when saving vector graphics
          # see https://stackoverflow.com/questions/15822159
          # also see https://stackoverflow.com/a/32911283
          # set_edgecolor('face') does indeed remove all of the aliasing problems
          # unfortunately, it also seems to distort the plot in a subtle but important way
          # it shifts the entire colorbar down w.r.t. the data (by one contour? not clear)
          # so for now, I am trying to fix the problem by adding contour just below contourf
          # this does not perfectly get rid of the aliasing, but it doesn't distort the data
          # which is more important
          # I anticipate that this method will be tinkered with in the future
          # so I've left the things I have tried and abandoned as comments---good luck!
          # ---Blaise 2017-07-30
          kwargs["antialiased"] = False
          kwargs["extend"] = "both"
          contours = super().contourf(*args, **kwargs)
          # fill lines
          zorder = contours.collections[0].zorder - 0.1
          levels = (contours.levels[1:] + contours.levels[:-1]) / 2
          matplotlib.axes.Axes.contour(
              self, *args[:3], levels=levels, cmap=contours.cmap, zorder=zorder
          )
          # decoration
          self.set_facecolor([0.75] * 3)
          # PathCollection modifications
          for c in contours.collections:
              pass
              # c.set_rasterized(True)
              # c.set_edgecolor('face')
          return contours