/examples/vincent_quandl_maps.py

https://github.com/garaud/vincent · Python · 38 lines · 32 code · 6 blank · 0 comment · 2 complexity · 807c91ffe9c4bd247c3bfce42e68cf56 MD5 · raw file

  1. import pandas as pd
  2. import Quandl
  3. import vincent
  4. abbvs = ['AL', 'AK', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'FL', 'GA', 'HI',
  5. 'ID', 'IL', 'IN', 'IA', 'KS', 'KY', 'LA', 'ME', 'MD', 'MA', 'MI',
  6. 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY', 'NC',
  7. 'ND', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT',
  8. 'VT', 'VA', 'WA', 'WV', 'WI', 'WY']
  9. data = {'Unemployment': {'Code': 'UR', 'data': []},
  10. 'House Price Index': {'Code': 'STHPI', 'data': []}}
  11. date = '2012-10-01'
  12. df_list = []
  13. for key, value in data.iteritems():
  14. for state in abbvs:
  15. quandl_code = 'FRED/{0}{1}'.format(state, value['Code'])
  16. df = Quandl.get(quandl_code,
  17. authtoken='*****',
  18. startdate=date,
  19. enddate=date)
  20. df = df.rename(columns={'Value': state},
  21. index={pd.to_datetime(date): key})
  22. value['data'].append(df.T)
  23. stacked = pd.concat(data[key]['data'])
  24. data[key]['data'] = stacked
  25. df_list.append(stacked)
  26. all_data = pd.concat(df_list, axis=1)
  27. us_states = r'data/us-states.json'
  28. vis = vincent.Map(width=1000, height=800)
  29. vis.tabular_data(all_data, columns=['Unemployment'])
  30. vis.geo_data(projection='albersUsa', scale=1000, bind_data='data.id', states=us_states)
  31. vis += (['#c9cedb', '#0b0d11'], 'scales', 0, 'range')
  32. vis.to_json(path, html=True)