In [1]:
import pandas as pd
import numpy as np
import plotly
from plotly.graph_objs import * # todo remove redundant imports
import plotly.plotly as py
import plotly.graph_objs as go
from plotly import tools
In [ ]:
In [3]:
resident = pd.read_csv('../../cdr_presence_residents.csv')
In [5]:
resident_trace = Bar(
x=resident['day'],
y=resident['presence'],
name = 'Estimated Presence of Residents in Florence'
)
layout = go.Layout(
barmode='stack',
bargap=0,
title='Estimated Presence of Residents in Florence per Day',
xaxis=dict(
title='Date',
fixedrange=True
),
yaxis=dict(
title='Total Presence',
fixedrange=True
),
)
fig = go.Figure(data=go.Data([resident_trace]), layout=layout)
py.iplot(fig, filename='cdr_presence_residents_timeseries_old', sharing='private')
Out[5]:
In [117]:
visitor = pd.read_csv('../../cdr_presence_italian_visitors.csv')
In [4]:
# visitor_trace = Bar(
# x=visitor['day'],
# y=visitor['presence'],
# name = 'Estimated Presence of Italian Visitors in Florence'
# )
def stacked_bar_chart(df, filename, stacks='place_of_origin', title=''):
data = []
# sorted_df = df.sort_values('presence')
averages = df.groupby([stacks])['presence'].sum().reset_index(name='total_presence')
df_merged = pd.merge(df, averages, left_on=stacks, right_on=stacks, how='outer')
sorted_df = df_merged.sort_values('total_presence')
final_df = df_merged.groupby(['day', stacks])['presence'].sum().reset_index(name='sum_presence')
for place in sorted_df[stacks].unique():
place_presence = final_df.loc[final_df[stacks] == place]
trace = Bar(
x=place_presence['day'],
y=place_presence['sum_presence'],
name=place
)
data.append(trace)
layout = go.Layout(
barmode='stack',
bargap=0,
title=title,
xaxis=dict(
title='Date',
fixedrange=True
),
yaxis=dict(
title='Total Presence',
fixedrange=True
)
)
fig = go.Figure(data=data, layout=layout)
return py.iplot(fig, filename=filename, sharing='private')
In [2]:
stacked_bar_chart(visitor, 'cdr_presence_visitors_timeseries_old', title='Estimated Presence of Italian Visitors in Florence per Day')
In [120]:
foreign = pd.read_csv('../../cdr_presence_foreigners.csv')
In [121]:
country_groups = pd.read_csv('../../cdr_country_groupings.csv')
foreign_grouped = pd.merge(foreign, country_groups, left_on='place_of_origin', right_on='country', how='outer')
del foreign_grouped['country']
In [122]:
# foreign_trace = Bar(
# x=foreign['day'],
# y=foreign['presence'],
# name = 'Estimated Presence of Foreign Visitors in Florence'
# )
# fig = go.Figure(data=go.Data([foreign_trace]))
# py.iplot(fig, filename='cdr_presence_foreigners_timeseries', sharing='private')
stacked_bar_chart(foreign_grouped, 'cdr_presence_foreigners_timeseries_old', stacks='grouping', title='Estimated Presence of Foreign Visitors in Florence per Day')
Out[122]:
In [124]:
data = []
dfs = [(foreign, 'Foreigners'), (visitor, 'Italian Visitors'), (resident, 'Residents')]
for df, name in dfs:
final_df = df.groupby(['day'])['presence'].sum().reset_index(name='sum_presence')
trace = Bar(
x=final_df['day'],
y=final_df['sum_presence'],
name=name
)
data.append(trace)
layout = go.Layout(
barmode='stack',
bargap=0,
title='Total Estimated Presence in Florence per Day',
xaxis=dict(
title='Date'
),
yaxis=dict(
title='Total Presence',
)
)
fig = go.Figure(data=data, layout=layout)
py.iplot(fig, filename='cdr_presence_total_timeseries_old', sharing='private')
Out[124]:
In [2]:
layout = go.Layout(
title="Italian Length of Stay",
titlefont=dict(size=24),
width=1200,
height=800,
xaxis=dict(
title='',
titlefont=dict(size=18),
# range=,
# nticks=,
ticks='outside',
tickfont=dict(size=16)
),
yaxis=dict(
title='',
titlefont=dict(size=18),
ticks='outside',
tickfont=dict(size=16)
)
)
labels = ['1 day','2 days','3 days','4+ days']
italian = [0.805992,0.11619,0.045552,0.032266]
foreign = [0.596528,0.219724,0.106579,0.077169]
joined = [0.681962,0.177503,0.081685,0.05885]
trip_labels = ['1 trip', '2 trips', '3 trips', '4+ trips']
trip_labels_fr = ['1 trip', '2 trips', '3+ trips']
italian_trip = [0.792200, 0.140294, 0.040848, 0.026658]
foreign_trip = [0.916953, 0.066461, 0.016586]
colors = ['#D7C5BE', '#5EA1CA', '#d15c5f', '#DFD485']
colors_lite =['#e8d9d3', '#7cbce2', '#ef7a7d', '#efe59b']
colors_lite_fr =['#e8d9d3', '#7cbce2', '#ef7a7d']
trace = go.Pie(labels=trip_labels_fr, values=foreign_trip, marker=dict(colors=colors_lite_fr), textfont=dict(size=20))
py.iplot([trace], filename='foreign_number_of_trips')
Out[2]: