Book Image

Hands-On Dashboard Development with Shiny

By : Chris Beeley
Book Image

Hands-On Dashboard Development with Shiny

By: Chris Beeley

Overview of this book

Although vanilla Shiny applications look attractive with some layout flexibility, you may still want to have more control over how the interface is laid out to produce a dashboard. Hands-On Dashboard Development with Shiny helps you incorporate this in your applications. The book starts by guiding you in producing an application based on the diamonds dataset included in the ggplot2 package. You’ll create a single application, but the interface will be reskinned and rebuilt throughout using different methods to illustrate their uses and functions using HTML, CSS, and JavaScript. You will also learn to develop an application that creates documents and reports using R Markdown. Furthermore, the book demonstrates the use of HTML templates and the Bootstrap framework. Moving along, you will learn how to produce dashboards using the Shiny command and dashboard package. Finally, you will learn how to lay out applications using a wide range of built-in functions. By the end of the book, you will have an understanding of the principles that underpin layout in Shiny applications, including sections of HTML added to a vanilla Shiny application, HTML interfaces written from scratch, dashboards, navigation bars, and interfaces.
Table of Contents (5 chapters)

Building your first dashboard

In this section, we will look at putting together your first dashboard. We will cover the code structure for a Shiny dashboard, and we will also look at putting together a simple example.

To make a Shiny dashboard, you will need to download the package using the install.packages command. Note that the package is then loaded in the preamble of the UI to our file.

There are two methods of structuring the code file for a Shiny dashboard and it also requires the setup of three components: dashboardHeader, dashboardSidebar, and dashboardBody. Using the first method, these three components can be passed to dashboardPage very simply, as shown here:

dashboardPage( 
  dashboardHeader(), 
  dashboardSidebar(), 
  dashboardBody(), 
)

Using the second method, header, sidebar, and body can all be set up separately and then passed to dashboardPage, as shown here...