by Joseph Rickert
We are pleased to announce that Jo-fai Chow is the winner of the Revolution Analytics contest. Jo-fai’s entry, which was implemented as a Shiny project, may be viewed by clicking on the figure below.
Jo-fai’s work not only produced an aesthetically pleasing sequence of maps but also provides a superb example of a well-documented, small project developed on Shiny and GitHub. The multiple maps are very nicely rendered, allow for zooming in and pulling back, and display information differently depending on the scale. A nice touch is the code to clean the data set. We wish to thank Jo-fai for taking the trouble to craft an entry that exceeds the contest requirements by providing a roadmap for others to follow.
It is not at all surprising that Javascript was used to render the user group maps. (Our original post announcing the contest pointed out several Javascript resources.). However, it is very nice to see the extent to which Javascript capabilities are being integrated into R. The main packages used for the project are Shiny, rMaps, rCharts and ggmap. Shiny, of course, has become the standard for deploying interactive R applications to the web, and ggmap is a popular and capable package for building visualizations with Google Maps, OpenStreetMap, Stamen Maps and CloudMade Maps.
rMaps and rCharts are somewhat newer packages. rMaps, which is described as "work in progress" on its home page, supports the Leaflet, DataMaps and Crosslet JavaScript libraries. The rCharts package also supports multiple Javascript libraries including PolyChart, Morris, NVD3, xCharts, HighCharts and Leaflet. A nice feature of rCharts is that it provides a “lattice like” formula interface.
The number of Javascript libraries available to R users to choose from is overwhelming! This is a tribute to the work of the Shiny, rCharts and rMaps developers and illustrates the general commitment of R developers to make the very best visualization tools available to R users.
Many thanks to everyone who participated in the contest!
Comments
You can follow this conversation by subscribing to the comment feed for this post.