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')


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-da879986a9c8> in <module>()
----> 1 stacked_bar_chart(visitor, 'cdr_presence_visitors_timeseries_old', title='Estimated Presence of Italian Visitors in Florence per Day')

NameError: name 'visitor' is not defined

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]: