Exemple #1
0
def plotter(fdict):
    """ Go """
    ctx = get_autoplot_context(fdict, get_description())

    get_df(ctx)
    labels = {}
    data = {}
    for state, row in ctx['df'].iterrows():
        val = row['departure']
        data[state] = val
        if pd.isna(val):
            if pd.isna(row['avg']):
                subscript = 'M'
            else:
                subscript = "[-%.0f]" % (row['avg'], )
                data[state] = 0 - row['avg']
        else:
            subscript = "[%s%.0f]" % ("+" if val > 0 else "", val)
            subscript = "[0]" if subscript in ['[-0]', '[+0]'] else subscript
        labels[state] = "%s\n%s" % ('M' if pd.isna(row['thisval'])
                                    else int(row['thisval']), subscript)

    mp = MapPlot(
        sector='conus', title=ctx['title'], subtitle=ctx['subtitle']
    )
    levels = range(-40, 41, 10)
    cmap = plt.get_cmap(ctx['cmap'])
    cmap.set_bad('white')
    mp.fill_states(data, ilabel=True, labels=labels, bins=levels,
                   cmap=cmap, units='Absolute %',
                   labelfontsize=16)

    return mp.fig, ctx['df']
Exemple #2
0
def plotter(fdict):
    """ Go """
    ctx = get_autoplot_context(fdict, get_description())

    get_df(ctx)
    labels = {}
    data = {}
    for state, row in ctx["df"].iterrows():
        val = row["departure"]
        data[state] = val
        if pd.isna(val):
            if pd.isna(row["avg"]):
                subscript = "M"
            else:
                subscript = "[-%.0f]" % (row["avg"], )
                data[state] = 0 - row["avg"]
        else:
            subscript = "[%s%.0f]" % ("+" if val > 0 else "", val)
            subscript = "[0]" if subscript in ["[-0]", "[+0]"] else subscript
        labels[state] = "%s\n%s" % (
            "M" if pd.isna(row["thisval"]) else int(row["thisval"]),
            subscript,
        )

    mp = MapPlot(sector="conus", title=ctx["title"], subtitle=ctx["subtitle"])
    levels = range(-40, 41, 10)
    cmap = plt.get_cmap(ctx["cmap"])
    cmap.set_bad("white")
    mp.fill_states(
        data,
        ilabel=True,
        labels=labels,
        bins=levels,
        cmap=cmap,
        units="Absolute %",
        labelfontsize=16,
    )

    return mp.fig, ctx["df"]
Exemple #3
0
def main():
    """Go Main Go"""
    data = get_data()
    mp = MapPlot(sector='midwest',
                 title='8 July 2018 USDA NASS Corn Progress Percent Silking',
                 subtitle=('Top value is 2018 percentage, bottom value is '
                           'departure from 2008-2017 avg'))
    data2 = {}
    labels = {}
    for state in data:
        val = data[state]['d2017'] - data[state]['avg']
        data2[state] = val
        labels[state.encode('utf-8')] = "%i%%\n%s%.1f%%" % (data[state]['d2017'],
                                          "+" if val > 0 else "", val)

    print(labels)
    levels = range(-40, 41, 10)
    mp.fill_states(data2, ilabel=True, labels=labels, bins=levels,
                   cmap=plt.get_cmap('RdBu_r'), units='Absolute %',
                   labelfontsize=16)
    mp.postprocess(filename='test.png')
    mp.close()