Exemple #1
0
def plot_cloropleth_map(ls,interest,leg,year):

	mycolors = ['#b35806', '#f1a340', '#fee0b6', '#d8daeb', '#998ec3', '#542788']
	mybin = Colorbin(ls, mycolors, proportional=True, decimals=None)
	state_info = pd.read_csv('chorogrid/databases/usa_states.csv')
	colors_by_state = mybin.colors_out
	font_colors_by_state = mybin.complements
	legend_colors = mybin.colors_in
	legend_labels = mybin.labels
	
	cg = Chorogrid('chorogrid/databases/usa_states.csv', states, colors_by_state)
	cg.set_title(str(year)+' H1b '+str(interest), font_dict={'font-size': 19})
	cg.set_legend(legend_colors, legend_labels, title=leg)
	#cg = Chorogrid('chorogrid/databases/usa_states.csv', states, colors_by_state)
	cg.draw_map(spacing_dict={'legend_offset': [-150,-25]})
	#cg.draw_squares(spacing_dict={'margin_right': 150}) 
	cg.done(show=False, save_filename = str(year)+' H1b '+str(interest))
Exemple #2
0
 def make_hex_svg(self, output_fname, show=False, draw_text=False):
     """ Outputs an SVG file of the hexgrid
         output_fname: the outputfilepath
         show: whether or not the output should be displayed in the ipython notebook
         draw_text: whether or not the id_col text should be drawn on the map
     """
     self._initialize_grid()
     self._populate_new_grid()
     cg = Chorogrid(self.df,
                    self.df[self.index_col].tolist(),
                    ['#eeeeee'] * len(self.df),
                    id_column=self.index_col)
     cg.draw_hex(draw_text=draw_text)
     cg.done(save_filename=output_fname, show=show)
     return
Exemple #3
0
def plot_states(states,
                values,
                title="",
                legend="",
                colors=DEFAULT_COLORS,
                complements=DEFAULT_COMPLEMENTS,
                font={},
                spacing={},
                decimals=1,
                shape="hex",
                quantile=False):
    states = [_get_state(state) for state in states]
    states, values = zip(*[(state, value)
                           for state, value in zip(states, values)
                           if state in STATE_ABBREVS.values()])
    if quantile:
        values = pd.qcut(values, 6, [-20, -10, -1, 1, 10, 20])

    # Colors
    cbin = Colorbin(values, colors, proportional=True, decimals=None)
    cbin.set_decimals(decimals)
    cbin.recalc(fenceposts=True)
    cbin.calc_complements(0.0, *complements)

    # Choropleth
    cg = Chorogrid(STATE_FILEPATH, states, cbin.colors_out)
    cg.set_title(title, font_dict=font)
    if quantile:
        labels = _quantile_labels(len(colors))
    else:
        labels = cbin.labels
    cg.set_legend(cbin.colors_in, labels, title=legend)

    # Draw
    draw_fn = {
        "hex": cg.draw_hex,
        "square": cg.draw_squares,
        "multihex": cg.draw_multihex,
        "multisquare": cg.draw_multisquare,
        "map": cg.draw_map
    }[shape]
    draw_fn(spacing_dict=spacing)
    return cg.done(show=True)
Exemple #4
0
    def make_hex_svg(self, output_fname=None, show=False, draw_text=False):
        """ Outputs an SVG file of the hexgrid
            output_fname: the outputfilepath
            show: whether or not the output should be displayed in the ipython notebook
            draw_text: whether or not the id_col text should be drawn on the map
        """

        if "/" in output_fname and not os.path.isdir(
                output_fname[:output_fname.rfind('/')]
        ):  #check if outputfilepath directory exists
            raise IOError('The directory specified does not exist')
        self._initialize_grid()
        self._populate_new_grid()
        cg = Chorogrid(self.df,
                       self.df[self.index_col].tolist(),
                       ['#eeeeee'] * len(self.df),
                       id_column=self.index_col)
        cg.draw_hex(draw_text=draw_text)
        cg.done(save_filename=output_fname, show=show)
        self.total_width = cg.total_width
        self.total_height = cg.total_height
        self.svgstring = cg.svgstring
        return
population.index = population['state']
df = population.join(counts, how = 'right')
df['percentage'] = df['ListingAmountFunded']/df['population']*10000

mycolors = ['#e0e9f0', '#c1d4e2',  '#a3bed4', '#84a9c6','#6694b8', '#517693', '#3d586e']
mybin = Colorbin(df['percentage'], mycolors, proportional=True, decimals=None)
mybin.set_decimals(1)
mybin.recalc(fenceposts=True)
mybin.fenceposts
mybin.calc_complements(0.5, '#e0e0e0', '#101010')
states = list(df.index)
colors_by_state = mybin.colors_out
font_colors_by_state = mybin.complements
legend_colors = mybin.colors_in
legend_labels = mybin.labels
cg = Chorogrid('chorogrid/databases/usa_states.csv', states, colors_by_state)
cg.set_title('Number of P2P Loans Normalized by State Population', font_dict={'font-size': 16})
cg.set_legend(legend_colors, legend_labels, title='# of Loans scaled by population')
cg.draw_hex(spacing_dict={'margin_right': 210}, font_colors=font_colors_by_state)
cg.done(show=True)

# 1.2 number of loans issued by states -  choropleth map 
df = listings.groupby(['BorrowerState']).ListingAmountFunded.count()

mycolors = ['#e0e9f0', '#c1d4e2',  '#a3bed4', '#84a9c6','#6694b8', '#517693', '#3d586e']
mybin = Colorbin(df, mycolors, proportional=True, decimals=None)
mybin.set_decimals(1)
mybin.recalc(fenceposts=True)
mybin.fenceposts
mybin.calc_complements(0.5, '#e0e0e0', '#101010')
states = list(df.index)
Exemple #6
0
for i in srsStateUnIDs:
    dictStateUN[i[:2]] = apiFred.get_series(i,observation_start='2007-01-01').mean()

dfStateUN = pd.DataFrame(list(dictStateUN.items()),columns=['State', 'Unemployment'])


##Make the Map
colors = ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#8c2d04']
chBin = Colorbin(dfStateUN['Unemployment'], colors, proportional=True, decimals=None)
chBin.set_decimals(1)
chBin.recalc(fenceposts=True)
chBin.fenceposts
colors_out = chBin.colors_out
legend_colors = chBin.colors_in
legend_labels = chBin.labels
cg = Chorogrid('X:\\Documents\\Research\\Tools\\Python\\chorogrid-master\\chorogrid\\databases\\usa_states.csv', list(dfStateUN['State']), colors_out)
cg.set_title('Average Unemployment by State (%)', font_dict={'font-size': 16})
cg.set_legend(legend_colors, legend_labels, title='% Unemployment')
cg.draw_map(spacing_dict={'margin_right': 400})
cg.done(show=True)


####### Import the LC Data #######

path = 'D:\\Andrew\\VM_Storage\\LendingClub\\LoanStats3.csv'

dfListings = pd.read_csv(path)

cat_names = {'Fully Paid': 1, 'Charged Off': 0, 'Current': 1, 'Late (31-120 days)': 0, 'In Grace Period': 1, 'Late (16-30 days)': 0, 'Default': 0, }
dfListings['status_cat'] =  dfListings['loan_status'].map(cat_names)
dfListings = dfListings [~dfListings['status_cat'].isnull()]
Exemple #7
0
def plot_counties(fips,
                  values,
                  title="",
                  legend="",
                  colors=DEFAULT_COLORS,
                  complements=DEFAULT_COMPLEMENTS,
                  font={},
                  spacing={},
                  decimals=1,
                  quantile=False,
                  statelines=False):
    fips, values = zip(*[(fip, value) for fip, value in zip(fips, values)
                         if fip in COUNTY_IDS])
    if quantile:
        values = pd.qcut(values, 6, [-20, -10, -1, 1, 10, 20])

    # Colors
    cbin = Colorbin(values, colors, proportional=True, decimals=None)
    cbin.set_decimals(decimals)
    cbin.recalc(fenceposts=True)
    cbin.calc_complements(0.0, *complements)

    # Choropleth
    cg = Chorogrid(COUNTY_FILEPATH,
                   fips,
                   cbin.colors_out,
                   id_column="fips_integer")
    cg.set_title(title, font_dict=font)
    if quantile:
        labels = _quantile_labels(len(colors))
    else:
        labels = cbin.labels
    cg.set_legend(cbin.colors_in, labels, title=legend)

    # Draw
    cg.draw_map(spacing_dict=spacing)
    if statelines:
        with open(STATELINES_FILEPATH, 'r') as f:
            statelines = f.read()
        cg.add_svg(statelines)
    return cg.done(show=True)
Exemple #8
0
colors = [
    '#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913',
    '#d94801', '#8c2d04'
]
chBin = Colorbin(dfStateUN['Unemployment'],
                 colors,
                 proportional=True,
                 decimals=None)
chBin.set_decimals(1)
chBin.recalc(fenceposts=True)
chBin.fenceposts
colors_out = chBin.colors_out
legend_colors = chBin.colors_in
legend_labels = chBin.labels
cg = Chorogrid(
    'X:\\Documents\\Research\\Tools\\Python\\chorogrid-master\\chorogrid\\databases\\usa_states.csv',
    list(dfStateUN['State']), colors_out)
cg.set_title('Average Unemployment by State (%)', font_dict={'font-size': 16})
cg.set_legend(legend_colors, legend_labels, title='% Unemployment')
cg.draw_map(spacing_dict={'margin_right': 400})
cg.done(show=True)

####### Import the LC Data #######

path = 'D:\\Andrew\\VM_Storage\\LendingClub\\LoanStats3.csv'

dfListings = pd.read_csv(path)

cat_names = {
    'Fully Paid': 1,
    'Charged Off': 0,