code: def use_defaults(self, data):
          
          missing = (self.aesthetics() -
                     self.aes_params.keys() -
                     set(data.columns))
  
          for ae in missing-self.REQUIRED_AES:
              if self.DEFAULT_AES[ae] is not None:
                  data[ae] = self.DEFAULT_AES[ae]
  
          missing = (self.aes_params.keys() -
                     set(data.columns))
  
          for ae in self.aes_params:
              data[ae] = self.aes_params[ae]
  
          return data
docs: Combine data with defaults and set aesthetics from parameters
  
          stats should not override this method.
  
          Parameters
          ----------
          data : dataframe
              Data used for drawing the geom.
  
          Returns
          -------
          out : dataframe
              Data used for drawing the geom.