Siny_Gridster_JustGauge_HighCharts_AppOver the past few weeks and months we've been exploring the new R web application framework Shiny, how we can develop in it, what its potential is, and what's new.  As expected, web apps with Shiny are getting very sophisticated, and thankfully are making development of professional products by data scientists a reality.  Where once insights gained by analysis required long and intense meeting, we now have beautiful interactive shiny web apps, none of which would be possible without the developers who are building interfaces through R for their favorite javascript packages.  In many ways working through R allows us to do very unique things because we're in an environment where we can easily manipulate, massage, and re-structure our data.  @Winston_Cheng, one of the elite developers building these R javascript packages, has put together a demo app that brings together Shiny with Gridster, JustGage, and Highcharts. Shiny comes with basic functions to create side-panels and main-panels, but those functions are not very configurable and they look amateurish, which can have some collateral issues.  Shiny is good however at modularizing its input vs output displays, and wouldn't it be nice is we could rearrange them as we saw fit, or anyone we build our apps for; Thank you Winston.

Gridster - JustGage - Highcharts

Let's overview with the short short version: Gridster is the boxes that JustGage, Highcharts, or your R charts live within.  A little more detail, Gridster is "the mythical drag-and-drop multi-column jQuery grid plugin that allows building intuitive draggable layouts from elements spanning multiple columns... made by Ducksboard.", JustGage generates and animates nice & clean gauges, and Highcharts is an interactive HTML5/Javascript charting library.  What's nice is these are all independent, which always makes coding easier, the example provided just happens to be what Winston felt like putting together.  One could just as easily use another chart type, such as ggplot2, iGraph, geoPlot, or your own javascript package.

New Potential

The real value here is that representations of your data can be manipulated on the fly by your users.  We do our best to get into our users heads and present the data in a clean simple way, but there can be too much to simplify yet still have meaning; there is a constant balance between depth and breadth.  If you can rearrange the position of different charts you address peoples' ability to absorb the information quickly, and if people can replace plots with new ones, based on your estimation of what's potentially interesting, they can customize their view.  Now your Shiny app is a plug and play system designed to give users flexibility based on their interests.

Shiny Products

My question recently has been what kind of products are ultimately possible with this new Shiny framework.  Initially the question for me was scalability, but I quickly found it's easy to create a Shiny server using Amazon EC2 which will scale for users automatically.  The next question was integration, gathering external data and publishing to external databases, which has been addressed by Shiny's reactive functions - although is can still be a little convoluted.  Interactivity was very quickly addressed through the built-in use of javascript and development of Shiny D3 packages.  The question really comes down to who uses R that would want to develop products?  We are an insight apart, in that we are constantly looking for a better way to bridge the gap between what we see and what is useful, shareable, consumable, etc.  For instance, now we can show the downstream impacts of a component's reliability in manufacturing, correlations between consumer purchasing behaviors, or real-time resource needs for a dispatch center.  These Shiny apps are like the copper wire between a voltage potential, they let the power of insight flow.

Posted
AuthorSean Gonzalez