Book Image

Web Application Development with R Using Shiny Second Edition - Second Edition

By : Chris Beeley
Book Image

Web Application Development with R Using Shiny Second Edition - Second Edition

By: Chris Beeley

Overview of this book

R is a highly flexible and powerful tool for analyzing and visualizing data. Most of the applications built using various libraries with R are desktop-based. But what if you want to go on the web? Here comes Shiny to your rescue! Shiny allows you to create interactive web applications using the excellent analytical and graphical capabilities of R. This book will guide you through basic data management and analysis with R through your first Shiny application, and then show you how to integrate Shiny applications with your own web pages. Finally, you will learn how to finely control the inputs and outputs of your application, along with using other packages to build state-of-the-art applications, including dashboards.
Table of Contents (14 chapters)
Web Application Development with R Using Shiny Second Edition
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Resizing the google chart


So far, it was so simple. However, there is a problem!

Google vis charts, unlike native R visualizations, are not automatically resized when the browser window changes. We're going to fix this problem very simply using session$clientData, which we came across at the beginning of the chapter. If you are running the application, click on the Show client data button at the bottom of the application. The following screen will appear:

In order to redraw the gauge, we are going to establish a dependency on one of these elements that we know will change when the size of the browser window changes. In this case, output_trend_width is perfect. We're not really worried about height because there isn't anything to bump against the gauge below it, only to the left and right. The code to draw the gauge therefore becomes:

output$gauge <- renderGvis({
  # dependence on size of plots to detect a resize
  session$clientData$output_trend_width
  [... as before ...]
})

Changing the...