docs: def fit(self, X, y=None, **kwargs):
          """
          The fit method is the primary drawing input for the
          visualization since it has both the X and y data required for the
          viz and the transform method does not.
  
          Parameters
          ----------
          X : ndarray or DataFrame of shape n x m
              A matrix of n instances with m features
  
          y : ndarray or Series of length n
              An array or series of target or class values
  
          kwargs : dict
              Pass generic arguments to the drawing method
  
          Returns
          -------
          self : instance
              Returns the instance of the transformer/visualizer
          """
          if is_dataframe(X):
              self.X = X.values
              if self.features_ is None:
                  self.features_ = X.columns
          else:
              self.X = X
  
          self.y = y
  
          super(MissingDataVisualizer, self).fit(X, y, **kwargs)