
Я использую этот набор данных
набор данных
вот как выглядит мой код
collisions = (
pd.read_csv("NYC_Collisions.csv")
.astype({"ACCIDENT_DATE": "datetime64[ns]"})
.loc[:,["ACCIDENT_DATE", "BOROUGH", "COLLISION_ID"]]
.groupby(["ACCIDENT_DATE", "BOROUGH"], as_index=False)
.count()
.rename(columns={
"COLLISION_ID":"COLLISIONS",
"ACCIDENT_DATE":"DATE"})
)
collisions.head()
from datetime import datetime
from datetime import date
app = Dash(__name__)
app.layout = html.Div([
dcc.DatePickerRange(
id="date picker",
min_date_allowed=collisions["DATE"].min(),
max_date_allowed=collisions["DATE"].max(),
initial_visible_month=collisions["DATE"].max(),
start_date=collisions["DATE"].min(),
end_date=date(2022,1,1),
),
dcc.Graph(id="graph")
])
@app.callback(Output("graph", "figure"),
[Input("date picker", "start_date"),
Input("date picker", "end_date"),])
def plot_collisions_bar(start_date, end_date):
fig = px.bar(
(collisions
.loc[collisions["DATE"].between(start_date, end_date)]
.groupby("BOROUGH", as_index=False)
.sum()
)
,
x="COLLISIONS",
y="BOROUGH",
title=f"Traffic Accidents in NYC between {start_date[:10]} and {end_date[:10]}"
)
return fig
if __name__ == "__main__":
app.run_server(mode="inline", port=8001, width="60%")
Подробнее здесь: https://stackoverflow.com/questions/786 ... cker-range
Мобильная версия