import numpy as np import pandas as pd import matplotlib.pyplot as plt from IPython.html.widgets import interact import matplotlib.mlab as mlab import seaborn as sb #sb.set() # Reset Style sb.set(style="white", palette="muted") sb.set_context("talk") %matplotlib inline df = pd.read_csv('2014-06-27-001-Data.csv') # Convert Epoch Millis to Timestamp # http://pandas.pydata.org/pandas-docs/dev/timeseries.html#epoch-timestamps df.index = pd.to_datetime(df['millis'], unit='ms') accelerations = df[['ax','ay']].dropna() accelerations.plot(); import scipy.stats as stats from IPython.html.widgets import interact dists = ['Normal', 'Rayleigh', 'Weibull'] @interact def plot_sb_dist(column=accelerations.columns.tolist(), dist=dists): plt.figure(figsize=(10, 4)) dist_map = { 'Rayleigh': stats.rayleigh, 'Weibull': stats.exponweib, 'Normal': stats.norm, } sb.distplot(accelerations[column], fit=dist_map[dist], label='# of Sensor Readings') sb.plt.legend() plt.savefig("ax_dist.png", dpi=72, bbox_inches='tight') accelerations.describe() gps = pd.DataFrame() arcLon = 2*np.pi*6378.0/360.0 arcLat = arcLon * np.cos(df.longitude*np.pi/180.0) gps['LonM'] = df.longitude * arcLon * 1000.0 gps['LatM'] = df.latitude * arcLat * 1000.0 sb.jointplot(gps.LonM, gps.LatM, kind='kde', \ xlim=(gps.LonM.min()-1, gps.LonM.max()+1), \ ylim=(gps.LatM.min()-1, gps.LatM.max()+1), \ size=10, space=1) plt.savefig('gps_dist.png', dpi=150) @interact def plot_sb_dist(column=gps.columns.tolist(), dist=dists): plt.figure(figsize=(10, 6)) dist_map = { 'Rayleigh': stats.rayleigh, 'Weibull': stats.exponweib, 'Normal': stats.norm, } sb.distplot(gps[column], fit=dist_map[dist]) gps.describe() def pltnormpdf(mean, variance): plt.figure(figsize=(8,5)) plt.plot(x,mlab.normpdf(x, mean, variance)) plt.ylim(0,1) x = np.linspace(-10,10,500) interact(pltnormpdf, mean=(-5,5,0.5), variance=(0.1,10,0.1));