In [1]:
#ENTER YEAR --------
year = 2015
#-------------------
%matplotlib inline
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
import os
import pandas as pd
# df = pd.read_csv('data/locations_{}.csv'.format(year))
df = pd.read_csv('data/locations.csv')
df.tail()
Out[1]:
In [2]:
def plot_travel(df, title):
# Basemap parameter options here: http://matplotlib.org/basemap/api/basemap_api.html
# US+Europe
lat_0 = 0
lon_0 = 0
llcrnrlat = 20
llcrnrlon = -140
urcrnrlat = 65
urcrnrlon = 20
fig=plt.figure()
m = Basemap(projection='merc',
lat_0=lat_0, lon_0=lon_0, lat_ts=20, area_thresh=500,
llcrnrlon=llcrnrlon,llcrnrlat=llcrnrlat,urcrnrlon=urcrnrlon,urcrnrlat=urcrnrlat,
resolution='l')
m.drawmapboundary(fill_color='#FFFFFF')
m.fillcontinents(color='#B1B2B4',lake_color='#FFFFFF',zorder=0)
m.drawcoastlines(linewidth=0.25, zorder=8)
m.drawstates(linewidth=0.25, color='#A8A8A8', zorder=6)
m.drawcountries(linewidth=0.25, color='#707070', zorder=7)
for row in range(0,df.shape[0]):
lat_orig = df.loc[df.index[row],'Lat_Orig']
lng_orig = df.loc[df.index[row],'Lng_Orig']
lat_des = df.loc[df.index[row],'Lat_Des']
lng_des = df.loc[df.index[row],'Lng_Des']
m.drawgreatcircle(lon1=lng_orig, lat1=lat_orig, lon2=lng_des, lat2=lat_des,
linewidth=.5,color='#2E5FAC', zorder=9)
x, y = m(lng_orig,lat_orig)
m.scatter(x,y,2,marker='.',edgecolors='#CF5300',c='#CF5300', zorder=10)
x, y = m(lng_des,lat_des)
m.scatter(x,y,2,marker='.',edgecolors='#CF5300',c='#CF5300', zorder=10)
plt.show()
fig.savefig(title, dpi=350, bbox_inches='tight')
In [3]:
years = df.Year.unique()
for year in years:
dfPlot = df[df['Year'].isin([year])]
title = '{}_travel.png'
plot_travel(dfPlot, title)