code: def imshow(self, array, *args, **kwargs):
          
          if isinstance(array, Array2D):
              return self._imshow_array2d(array, *args, **kwargs)
  
          image = super(Axes, self).imshow(array, *args, **kwargs)
          self.autoscale(enable=None, axis='both', tight=None)
          return image
docs: Display an image, i.e. data on a 2D regular raster.
  
          If ``array`` is a :class:`~gwpy.types.Array2D` (e.g. a
          :class:`~gwpy.spectrogram.Spectrogram`), then the defaults are
          _different_ to those in the upstream
          :meth:`~matplotlib.axes.Axes.imshow` method. Namely, the defaults are
  
          - ``origin='lower'`` (coordinates start in lower-left corner)
          - ``aspect='auto'`` (pixels are not forced to be square)
          - ``interpolation='none'`` (no image interpolation is used)
  
          In all other usage, the defaults from the upstream matplotlib method
          are unchanged.
  
          Parameters
          ----------
          array : array-like or PIL image
              The image data.
  
          *args, **kwargs
              All arguments and keywords are passed to the inherited
              :meth:`~matplotlib.axes.Axes.imshow` method.
  
          See Also
          --------
          matplotlib.axes.Axes.imshow
              for details of the image rendering