code: def plot_energy_signature(
      meter_data,
      temperature_data,
      temp_col=None,
      ax=None,
      title=None,
      figsize=None,
      **kwargs
  ):
      
      try:
          import matplotlib.pyplot as plt
      except ImportError:  # pragma: no cover
          raise ImportError("matplotlib is required for plotting.")
  
      # format data
      temperature_mean = compute_temperature_features(meter_data.index, temperature_data)
      usage_per_day = compute_usage_per_day_feature(meter_data, series_name="meter_value")
      df = merge_features([usage_per_day, temperature_mean.temperature_mean])
  
      if figsize is None:
          figsize = (10, 4)
  
      if ax is None:
          fig, ax = plt.subplots(figsize=figsize)
  
      if temp_col is None:
          temp_col = "temperature_mean"
  
      ax.scatter(df[temp_col], df.meter_value, **kwargs)
      ax.set_xlabel("Temperature")
      ax.set_ylabel("Energy Use per Day")
  
      if title is not None:
          ax.set_title(title)
  
      return ax
docs: Plot meter and temperature data in energy signature.
  
      Parameters
      ----------
      meter_data : :any:`pandas.DataFrame`
          A :any:`pandas.DatetimeIndex`-indexed DataFrame of meter data with the column ``value``.
      temperature_data : :any:`pandas.Series`
          A :any:`pandas.DatetimeIndex`-indexed Series of temperature data.
      temp_col : :any:`str`, default ``'temperature_mean'``
          The name of the temperature column.
      ax : :any:`matplotlib.axes.Axes`
          The axis on which to plot.
      title : :any:`str`, optional
          Chart title.
      figsize : :any:`tuple`, optional
          (width, height) of chart.
      **kwargs
          Arbitrary keyword arguments to pass to
          :any:`matplotlib.axes.Axes.scatter`.
  
      Returns
      -------
      ax : :any:`matplotlib.axes.Axes`
          Matplotlib axes.