human
I wrote the below code

    plt.xlim((-0.5), 1.5)
    plt.ylim((-0.5), 1.5)
    plt.gcf().set_size_inches(size, size)
    plt.xticks([])
    plt.yticks([])
    max_text_size = (size * 12)
    min_text_size = size
    label_text_size = (size * 2.5)
    text_params = {'ha': 'center', 'va': 'center', 'family': 'sans-serif', 'fontweight': 'bold'}
    r2 = np.sqrt(2)
    deltas = {'AT': (1, 0), 'TA': ((-1), 0), 'GA': (0, 1), 'AG': (0, (-1)), 'CA': (((-1) / r2), (1 / r2)), 'AC': ((1 / r2), ((-1) / r2)), 'GT': ((1 / r2), (1 / r2)), 'TG': (((-1) / r2), ((-1) / r2)), 'CT': (0, 1), 'TC': (0, (-1)), 'GC': (1, 0), 'CG': ((-1), 0)}
    colors = {'AT': 'r', 'TA': 'k', 'GA': 'g', 'AG': 'r', 'CA': 'b', 'AC': 'r', 'GT': 'g', 'TG': 'k', 'CT': 'b', 'TC': 'k', 'GC': 'g', 'CG': 'b'}
    label_positions = {'AT': 'center', 'TA': 'center', 'GA': 'center', 'AG': 'center', 'CA': 'left', 'AC': 'left', 'GT': 'left', 'TG': 'left', 'CT': 'center', 'TC': 'center', 'GC': 'center', 'CG': 'center'}
    def do_fontsize(k):
        return float(np.clip((max_text_size * np.sqrt(data[k])), min_text_size, max_text_size))
    A = plt.text(0, 1, '$A_3$', color='r', size=do_fontsize('A'), **text_params)
    T = plt.text(1, 1, '$T_3$', color='k', size=do_fontsize('T'), **text_params)
    G = plt.text(0, 0, '$G_3$', color='g', size=do_fontsize('G'), **text_params)
    C = plt.text(1, 0, '$C_3$', color='b', size=do_fontsize('C'), **text_params)
    arrow_h_offset = 0.25
    max_arrow_length = (1 - (2 * arrow_h_offset))
    max_head_width = (2.5 * max_arrow_width)
    max_head_length = (2 * max_arrow_width)
    arrow_params = {'length_includes_head': True, 'shape': shape, 'head_starts_at_zero': head_starts_at_zero}
    ax = plt.gca()
    sf = 0.6
    d = ((((r2 / 2) + arrow_h_offset) - 0.5) / r2)
    r2v = (arrow_sep / r2)
    positions = {'AT': (arrow_h_offset, (1 + arrow_sep)), 'TA': ((1 - arrow_h_offset), (1 - arrow_sep)), 'GA': ((- arrow_sep), arrow_h_offset), 'AG': (arrow_sep, (1 - arrow_h_offset)), 'CA': (((1 - d) - r2v), (d - r2v)), 'AC': ((d + r2v), ((1 - d) + r2v)),...

What's a good function header?

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

def make_arrow_plot(data, size=4, display='length', shape='right', max_arrow_width=0.03, arrow_sep=0.02, alpha=0.5, normalize_data=False, ec=None, labelcolor=None, head_starts_at_zero=True, rate_labels=lettered_bases_to_rates, **kwargs):