def METHOD_NAME(col, results, type_filter='all', metadata=None,
                         x_sort_by='name', ylabel=None, hue_sort_by=None,
                         filename=None,
                         **kwargs):
    sort_by = (x_sort_by if callable(x_sort_by)
               else None if not metadata or not isinstance(x_sort_by, str)
               else lambda fr: fr.task.apply(lambda t: getattr(metadata[t], x_sort_by)))
    plot_df = sort_dataframe(results.set_index(['type', 'task']), by=sort_by)
    df = (plot_df if type_filter == 'all'
          else plot_df[plot_df.index.get_loc(type_filter)])
    x_labels = task_labels(df.index.unique())
    df.reset_index(inplace=True)
    hue = 'framework'
    hues = sorted(df[hue].unique(), key=hue_sort_by)
    fig = draw_pointplot(df,
                         x='task', y=col, hue=hue,
                         x_labels=x_labels,
                         ylabel=ylabel or "Score",
                         hue_order=hues,
                         legend_title="Framework",
                         **kwargs)
    if filename:
        savefig(fig, create_file("graphics", config.results_group, filename))
    return fig