<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def plot_energy_signature( meter_data, temperature_data, temp_col=None, ax=None, title=None, figsize=None, **kwargs ):
 """ 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. """

    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