Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import plotly.express as px | |
from datasets import load_dataset | |
import os | |
def basic_chart(counts_df, plot, hovermode = False): | |
# data processing | |
counts_df["traffic"] = ( | |
counts_df["car"] + counts_df["motorcycle"] + counts_df["large_vehicle"] | |
) | |
counts_df["datetime"] = pd.to_datetime(counts_df["date"] + " " + counts_df["time"]) | |
counts_df["weekday"] = counts_df["datetime"].dt.strftime("%A") | |
counts_df["hour"] = counts_df["datetime"].dt.strftime("%H") | |
# print (counts_df.head()) | |
# get the mean by the weekday | |
date_view = counts_df.groupby(by=["view", "weekday"]).mean().round(1) | |
date_view = date_view.reset_index() | |
# get the mean by the time | |
time_view = counts_df.groupby(by=["view", "hour"]).mean().round(1) | |
time_view = time_view.reset_index() | |
# conditional views | |
if plot == "Day": | |
# filtered_view_day = date_view[date_view["view"] == view] | |
fig = px.bar( | |
date_view, | |
x="weekday", | |
y="traffic", | |
category_orders = {'weekday': ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']}, | |
labels={ | |
"weekday": "Day", | |
"traffic": "Traffic", | |
}, | |
) | |
fig.update_layout( | |
yaxis_visible=True, yaxis_showticklabels=False, hovermode=hovermode, xaxis_title = '', yaxis_title = '' | |
) | |
elif plot == "Hour": | |
# filterd_view_time = time_view[time_view["view"] == view] | |
fig = px.bar( | |
time_view, | |
x="hour", | |
y="traffic", | |
labels={ | |
"hour": "Hour", | |
"traffic": "Traffic", | |
}, | |
) | |
fig.update_layout( | |
yaxis_visible=True, yaxis_showticklabels=False, hovermode=hovermode | |
) | |
fig.update_xaxes(tickmode = 'linear', type = 'category') | |
elif plot == "Raw": | |
# filtered_views = counts_df[counts_df["view"] == view] | |
fig = px.bar( | |
counts_df, | |
x="datetime", | |
y="traffic", | |
labels={ | |
"datetime": "Date and Time", | |
"traffic": "Traffic", | |
}, | |
) | |
fig.update_layout( | |
yaxis_visible=True, yaxis_showticklabels=False, hovermode=hovermode | |
) | |
return fig | |