CommencezCommencez gratuitement

Rendre tous les graphiques sensibles aux entrées

Faisons maintenant en sorte que l'ensemble du tableau de bord réagisse aux entrées des personnes utilisatrices!

Cette activité fait partie du cours

Créer des tableaux de bord avec flexdashboard

Voir le cours

Instructions de l’exercice

  • Comme vous l'avez fait avec la carte dans l'exercice précédent, faites maintenant réagir les deux autres graphiques (le valueBox() et le ggplot) aux entrées de l'utilisateur.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

{"my_document.Rmd":"---\ntitle: \"Bike Shares Daily\"\noutput: \n  flexdashboard::flex_dashboard:\n    orientation: columns\n    vertical_layout: fill\nruntime: shiny\n---\n\n```{r global, include=FALSE}\nlibrary(flexdashboard)\nlibrary(readr)\nlibrary(leaflet)\nlibrary(DT)\nlibrary(tidyverse)\nlibrary(lubridate)\nlibrary(plotly)\n\ntrips_df <- read_csv('https://assets.datacamp.com/production/course_6961/datasets/sanfran_bikeshare_joined_oneday.csv') %>%\n  mutate(duration_min = duration_sec / 60,\n         start_hour = hour(start_date)) %>%\n  filter(duration_min <= 8 * 60) # remove trips longer than 8 hours as suspicious data quality\n\n```\n\n\n\nColumn {data-width=200 .sidebar}\n-----------------------------------------------------------------------\n\n```{r}\n\nsliderInput(\"start_slider\", \n            label = \"Select trip start times to display (hour of day):\",\n            min = 0, \n            max = 24, \n            value = c(7,10), \n            step = 1)\n\nshow_trips_df <- reactive({\n\n  trips_df %>%\n    filter(start_hour >= input$start_slider[1] &\n             start_hour <= input$start_slider[2])\n\n})\n\n```\n\nColumn {data-width=450}\n-----------------------------------------------------------------------\n### Origins\n\n```{r}\n\nrenderLeaflet({\n  \n  show_trips_df() %>%\n    rename(latitude = start_latitude,\n           longitude = start_longitude) %>%\n    group_by(start_station_id, latitude, longitude) %>%\n    count() %>%\n    leaflet() %>%\n    addTiles() %>%\n    addCircles(radius = ~n)\n  \n})\n\n\n```\n\nColumn {data-width=350}\n-----------------------------------------------------------------------\n\n### Total Trips\n\n```{r}\n\nvalueBox(prettyNum(trips_df %>%\n                     nrow(), big.mark = ','), \n         icon = 'fa-bicycle')\n\n\n```\n\n### Trips by Duration\n\n```{r}\n\ntrips_df %>%\n    ggplot(aes(x = duration_min)) +\n    theme_bw() +\n    xlab('Trip Duration (min) \\n') +\n    ylab('# trips') +\n    geom_histogram() \n\n```\n\n\n"}
Modifier et exécuter le code