Auto Accidents(1975-2017)#

Import cuxfilter#

[1]:
import cuxfilter
from cuxfilter import charts
from cuxfilter.layouts import feature_and_base
[2]:
# update data_dir if you have downloaded datasets elsewhere
DATA_DIR = "./data"

Download required datasets#

[ ]:
from cuxfilter.sampledata import datasets_check

datasets_check("auto_accidents", base_dir=DATA_DIR)
[ ]:
cux_df = cuxfilter.DataFrame.from_arrow("./data/auto_accidents.arrow")
cux_df.data["ST_CASE"] = cux_df.data["ST_CASE"].astype("float64")

Define Charts#

[ ]:
# add mappings for day of week
label_map = {
    1: "Sunday",
    2: "Monday",
    3: "Tuesday",
    4: "Wednesday",
    5: "Thursday",
    6: "Friday",
    7: "Saturday",
    9: "Unknown",
}
cux_df.data["DAY_WEEK_STR"] = cux_df.data.DAY_WEEK.map(label_map)
gtc_demo_red_blue_palette = [
    "#3182bd",
    "#6baed6",
    "#7b8ed8",
    "#e26798",
    "#ff0068",
    "#323232",
]

Uncomment the below lines and replace MAPBOX_TOKEN with mapbox token string if you want to use mapbox map-tiles. Can be created for free here -https://www.mapbox.com/help/define-access-token/

[ ]:
chart1 = cuxfilter.charts.scatter(
    x="dropoff_x",
    y="dropoff_y",
    aggregate_col="DAY_WEEK",
    aggregate_fn="mean",
    tile_provider="CartoLight",
    color_palette=gtc_demo_red_blue_palette,
    pixel_shade_type="linear",
    unselected_alpha=0.2,
)

# Since cuxfilter 23.08, bar charts work with str columns
chart2 = cuxfilter.charts.bar("DAY_WEEK_STR")

chart3 = cuxfilter.charts.multi_select("YEAR")

Create a dashboard object#

[ ]:
d = cux_df.dashboard(
    [chart1, chart2],
    sidebar=[chart3],
    layout=cuxfilter.layouts.feature_and_base,
    theme=cuxfilter.themes.default,
    title="Auto Accident Dataset",
)
[ ]:
# run dashboard inline within the notebook cell
d.app()

Starting the dashboard#

  1. d.show(‘current_notebook_url:current_notebook_port’) remote dashboard

  2. d.app() inline within the notebook cell

Incase you need to stop the server:

  • d.stop()

auto-accidents

Export the queried data into a dataframe#

[ ]:
queried_df = d.export()