In [1]:
import numpy as np
import bqplot
import pandas as pd
import us
In [2]:
names = ["date", "city", "state", "country", "shape", "duration_seconds", "duration_reported", "description", "report_date", "latitude", "longitude"]
ufo = pd.read_csv("/srv/nbgrader/data/ufo-scrubbed-geocoded-time-standardized.csv",
names = names, parse_dates = ["date", "report_date"])
In [3]:
abbr_to_fits = us.states.mapping('abbr', 'fips')
In [4]:
ufo["fips"] = ufo["state"].apply(lambda a: int(abbr_to_fits.get(str(a).upper(), -1)))
In [5]:
fips_count = np.log10(ufo.groupby("fips")["duration_seconds"].count())
In [6]:
map_styles = {'scales': {'projection': bqplot.AlbersUSA(),
'color': bqplot.ColorScale(colors=["red", "blue"])},
'color': fips_count.to_dict()}
states_map = bqplot.Map(map_data=bqplot.topo_load('map_data/USStatesMap.json'), **map_styles)
map_fig = bqplot.Figure(marks=[states_map], title='USA')
map_fig