#apply styles to notebook (rather than doing it locally
# via the profile custom.css file)
#from IPython.core.display import HTML
#css_file = 'media/style.css'
#HTML(open(css_file, "r").read())
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
#read in aggregated federal contract totals
contracts = pd.read_csv('data/fed_contract_totals.txt')
contracts = contracts[[
'state_abbr', 'year', 'total_adj', 'dod_adj',
'non-dod_adj', 'total_per_capita_adj', 'dod_per_capita_adj',
'other_per_capita_adj', 'dod_percent_total', 'other_percent_total'
]]
#take a peek at the data
contracts.head()
state_abbr | year | total_adj | dod_adj | non-dod_adj | total_per_capita_adj | dod_per_capita_adj | other_per_capita_adj | dod_percent_total | other_percent_total | |
---|---|---|---|---|---|---|---|---|---|---|
0 | AK | 2012 | 2.566977e+09 | 2.118944e+09 | 4.480333e+08 | 3514.933976 | 2901.446238 | 613.487738 | 82.55 | 17.45 |
1 | AK | 2013 | 1.678331e+09 | 1.320963e+09 | 3.573687e+08 | 2283.037374 | 1796.902746 | 486.124303 | 78.71 | 21.29 |
2 | AK | 2011 | 2.412034e+09 | 1.942390e+09 | 4.696442e+08 | 3334.420985 | 2685.178076 | 649.242909 | 80.53 | 19.47 |
3 | AK | 2007 | 2.672470e+09 | 2.124680e+09 | 5.477898e+08 | 3928.365983 | 3123.157060 | 805.220247 | 79.50 | 20.50 |
4 | AK | 2009 | 3.086416e+09 | 2.406223e+09 | 6.801932e+08 | 4416.142121 | 3442.899441 | 973.242680 | 77.96 | 22.04 |
plottotal = contracts[['year', 'state_abbr', 'dod_adj', 'non-dod_adj']]
#show total in millions of $ for readability
plottotal['dod_adj'] = plottotal['dod_adj']/1000000
plottotal['non-dod_adj'] = plottotal['non-dod_adj']/1000000
plottotal = pd.melt(plottotal, id_vars=['year', 'state_abbr'], var_name = 'Contract Type', value_name = 'Amount')
fg = sns.factorplot('year', 'Amount', 'Contract Type',data=plottotal[plottotal['state_abbr']=='VA'], kind='bar')
fg.set_axis_labels('Fiscal Year', 'Amount (Millions of 2015 $)')
<seaborn.axisgrid.FacetGrid at 0x1bf58cf8>
plotpc = contracts[['year', 'state_abbr', 'dod_per_capita_adj', 'other_per_capita_adj']]
plotpc = pd.melt(plotpc, id_vars=['year', 'state_abbr'], var_name = 'Contract Type', value_name = 'Amount')
fg = sns.factorplot(
'year', 'Amount', 'Contract Type',
plotpc[~plotpc['state_abbr'].isin(['DC', 'PR'])],
col='state_abbr', col_wrap=4, kind='point'
)
fg.set_axis_labels('Fiscal Year', 'Amount (2015 $)')
<seaborn.axisgrid.FacetGrid at 0x17406128>