def _plot_filter(filters, n, eigenvalues, sum, title, ax, **kwargs):
    r"""Plot the spectral response of a filter bank.

    Parameters
    ----------
    n : int
        Number of points where the filters are evaluated.
    eigenvalues : boolean
        Whether to show the eigenvalues of the graph Laplacian.
        The eigenvalues should have been computed with
        :meth:`~pygsp.graphs.Graph.compute_fourier_basis`.
        By default, the eigenvalues are shown if they are available.
    sum : boolean
        Whether to plot the sum of the squared magnitudes of the filters.
        Default True if there is multiple filters.
    title : str
        Title of the figure.
    ax : :class:`matplotlib.axes.Axes`
        Axes where to draw the graph. Optional, created if not passed.
        Only available with the matplotlib backend.
    kwargs : dict
        Additional parameters passed to the matplotlib plot function.
        Useful for example to change the linewidth, linestyle, or set a label.
        Only available with the matplotlib backend.

    Returns
    -------
    fig : :class:`matplotlib.figure.Figure`
        The figure the plot belongs to. Only with the matplotlib backend.
    ax : :class:`matplotlib.axes.Axes`
        The axes the plot belongs to. Only with the matplotlib backend.

    Notes
    -----
    This function is only implemented for the matplotlib backend at the moment.

    Examples
    --------
    >>> import matplotlib
    >>> G = graphs.Logo()
    >>> mh = filters.MexicanHat(G)
    >>> fig, ax = mh.plot()

    """

    if eigenvalues is None:
        eigenvalues = (filters.G._e is not None)

    if sum is None:
        sum = filters.n_filters > 1

    if title is None:
        title = repr(filters)

    return _plt_plot_filter(filters, n=n, eigenvalues=eigenvalues, sum=sum,
                            title=title, ax=ax, **kwargs)