human
I wrote the below code

    fig = figure()
    if (len(cols) < 1):
        raise ValueError('must    have    at    least    one    column    of    data')
    if (plotfuncs is None):
        plotfuncs = dict()
    r = mlab.csv2rec(fname, comments=comments, skiprows=skiprows, checkrows=checkrows, delimiter=delimiter)
    def getname_val(identifier):
        'return    the    name    and    column    data    for    identifier'
        if is_string_like(identifier):
            return (identifier, r[identifier])
        elif is_numlike(identifier):
            name = r.dtype.names[int(identifier)]
            return (name, r[name])
        else:
            raise TypeError('identifier    must    be    a    string    or    integer')
    (xname, x) = getname_val(cols[0])
    if (len(cols) == 1):
        ax1 = fig.add_subplot(1, 1, 1)
        funcname = plotfuncs.get(cols[0], 'plot')
        func = getattr(ax1, funcname)
        func(x, **kwargs)
        ax1.set_xlabel(xname)
    else:
        N = len(cols)
        for i in range(1, N):
            if (i == 1):
                ax = ax1 = fig.add_subplot((N - 1), 1, i)
                ax.grid(True)
            else:
                ax = fig.add_subplot((N - 1), 1, i, sharex=ax1)
                ax.grid(True)
            (yname, y) = getname_val(cols[i])
            funcname = plotfuncs.get(cols[i], 'plot')
            func = getattr(ax, funcname)
            func(x, y, **kwargs)
            ax.set_ylabel(yname)
            if ax.is_last_row():
                ax.set_xlabel(xname)
            else:
                ax.set_xlabel('')
    if (xname == 'date'):
        fig.autofmt_xdate()
    draw_if_interactive()

What's a good function header?
 ... Here's a good function header?
assistant
#Here's a good function header.

def plotfile(fname, cols=(0,), plotfuncs=None, comments='#', skiprows=0, checkrows=5, delimiter=',', **kwargs):