Developing a Dashboard - Parameterised Reports + Flexdashboard + Plotly

This post summarises my steps in developing a dashboard with interactive static web-pages based on parameterised reports, flexdashboard, and plotly. The dashboards are now in use and the following is for historic reference. If you want to check, feel free to have a look at: https://ansperformance.eu/dashboard/stakeholder/airport/db/

Design Requirements

The goal was to set-up a dashboard for the performance monitoring of airports in Europe.

To reduce complexity, the idea was to make use exclusively of a client-side processing through the use of respective javascript driven widgets, i.e. static webpage(s). Also in the beginning it was not clear which (interactive) functionality the dashboard should support, the capability to make use of crosstalk across the building blocks was preferred.

As we moved away from a server-driven dashboard, each airport “dashboard” represents a separate web-page. Accordingly, the rendering of the web-pages would be implemented as a loop over the same principal web-page design. Rmarkdown offers parameterised report to tackle this.

The plotly library is free to use and offers a reasonable set of visualisations and associated interactivity. Plotly is also crosstalk compliant. The highcharter library has great visual aesthetics. However, at the time of writing, highcharter was not yet crosstalk compatible.

To ensure responsiveness the flexdashboard package was chosen. Flexdashboard offers a panel oriented framework. This reduces the burden to account for different enduser devices and display sizes.

Building Blocks

  • parameterised reports
  • flexdashboard
  • plotly

Parameterised Reports

this section will be developed.

explain what a parameterised report is and how the data is sourced. Then move to “rendering” the report with purrr.

Flexdashboard

this section needs to be developed.

explain how to instantiate flexdashboards what row-column layout

Adding Interactivity on Static HTML Pages (no shiny)

Interactive Graphics with Plotly

explain a few things about plotly. how to move from ggplot to ggplotly how to move to plot_ly for more fine-tuning

Other HTML-Widgets

datatable summary widget leaflet

Avatar
Rainer Koelle
Head Operational ANS Performance

I am a pilot, air traffic controller, and engineer, and work for EUROCONTROL, Performance Review Unit. My research interests revolve around operational air navigation and/or air transportation system performance applying a mix of data science and system analytics. In a side role I am also interested in time-critical decision making applied in aviation security and critical infrastructure protection.

Related

Next
Previous