You are currently browsing the category archive for the ‘Shiny’ category.
Five months ago we launched shinyapps.io. Since then, more than 25,000 accounts have been created and countless Shiny applications have been deployed. It’s incredibly exciting to see!
It’s also given us lots of data and feedback on how we can make shinyapps.io better. Today, we’re happy to tell you about some changes to our subscription Plans that we hope will make shinyapps.io an even better experience for Shiny developers and their application users.
New Starter Plan – More active hours and apps, less money
For many people the price difference between the Free and the Basic plan was too much. We heard you. Effective today there is a new Starter Plan for only $9 per month or $100 per year. The Starter Plan has the same features as the Free plan but allows 100 active hours per month and up to 25 applications. It’s perfect for the active Shiny developer on a budget!
More Active Hours for Basic, Standard, and Professional Plans
Once you’re up and running with Shiny we want to make sure even the most prolific developers and popular applications have the active hours they need. Today we’re doubling the number of active hours per month for the Basic (now 500), Standard (now 2,000), and Professional (now 10,000) plans. In practice, very few accounts exceeded the old limits for these plans but now you can be sure your needs are covered.
New Performance Boost features for the Basic Plan
In addition to supporting multiple R worker processes per application, which keeps your application responsive as more people use it, we’ve added more memory (up to 8GB) on Basic plans and above. While the data shows that most applications work fine without these enhancements, if you expect many users at the same time or your application is memory or CPU intensive, the Basic Plan has the performance boost you need. The Basic plan also allows unlimited applications and 500 active hours per month.
The articles section on shiny.rstudio.com has lots of great advice for Shiny developers.
A recent article by Dean Attali demonstrates how to save data from a Shiny app to persistent storage structures, like local files, servers, databases, and more. When you do this, your data remains after the app has closed, which opens new doors for data collection and analysis.
Read Dean’s article and more at shiny.rstudio.com/articles
We’ve added two new tools that make it even easier to learn Shiny.
The How to Start with Shiny training video provides a new way to teach yourself Shiny. The video covers everything you need to know to build your own Shiny apps. You’ll learn:
- The architecture of a Shiny app
- A template for making apps quickly
- The basics of building Shiny apps
- How to add sliders, drop down menus, buttons, and more to your apps
- How to share Shiny apps
- How to control reactions in your apps to
- update displays
- trigger code
- reduce computation
- delay reactions
- How to add design elements to your apps
- How to customize the layout of an app
- How to style your apps with CSS
Altogether, the video contains two hours and 25 minutes of material organized around a navigable table of contents.
Best of all, the video tutorial is completely free. The video is the result of our recent How to Start Shiny webinar series. Thank you to everyone who attended and made the series a success!
Watch the new video tutorial here.
New cheat sheet
The new Shiny cheat sheet provides an up-to-date reference to the most important Shiny functions.
The cheat sheet replaces the previous cheat sheet, adding new sections on single-file apps, reactivity, CSS and more. The new sheet also gave us a chance to apply some of the things we’ve learned about making cheat sheets since the original Shiny cheat sheet came out.
Get the new Shiny cheat sheet here.
Shiny 0.12 has been released to CRAN!
Compared to version 0.11.1, the major changes are:
- Interactive plots with base graphics and ggplot2
- Switch from RJSONIO to jsonlite
For a full list of changes and bugfixes in this version, see the NEWS file.
To install the new version of Shiny, run:
htmlwidgets is not required, but shiny 0.12 will not work with older versions of htmlwidgets, so it’s a good idea to install a fresh copy along with Shiny.
Interactive plots with base graphics and ggplot2
The major new feature in this version of Shiny is the ability to create interactive plots using R’s base graphics or ggplot2. Adding interactivity is easy: it just requires using one option in
plotOutput(), and then the information about mouse events will be available via the
You can use mouse events to read mouse coordinates, select or deselect points, and implement zooming. Here are some example applications:
- Basic interactions
- Advanced interactions: This demonstrates many advanced features of interactive plots.
- Excluding points (as depicted in the screen capture above)
Switch from RJSONIO to jsonlite
In previous versions of Shiny, the data was serialized to/from JSON using the RJSONIO package. However, as of 0.12.0, Shiny switched from RJSONIO to jsonlite. The reasons for this are that jsonlite has better-defined conversion behavior, and it has better performance because much of it is now implemented in C.
For the vast majority of users, this will have no impact on existing Shiny apps.
The htmlwidgets package has also switched to jsonlite, and any Shiny apps that use htmlwidgets also require an upgrade to that package.
A note about Data Tables
The version we just released to CRAN is actually 0.12.1; the previous version, 0.12.0, was released three weeks ago and deprecated Shiny’s
renderDataTable functions and instructed you to migrate to the nascent DT package instead. (We’ll talk more about DT in a future blog post.)
User feedback has indicated this transition was too sudden and abrupt, so we’ve undeprecated these functions in 0.12.1. We’ll continue to support these functions until DT has had more time to mature.
- Automatically plots xts time-series objects (or objects convertible to xts).
- Rich interactive features including zoom/pan and series/point highlighting.
- Highly configurable axis and series display (including optional 2nd Y-axis).
- Display upper/lower bars (e.g. prediction intervals) around series.
- Various graph overlays including shaded regions, event lines, and annotations.
- Use at the R console just like conventional R plots (via RStudio Viewer).
- Embeddable within R Markdown documents and Shiny web applications.
The dygraphs package is available on CRAN now and can be installed with:
Here are some examples of interactive time series visualizations you can create with only a line or two of R code (the screenshots are static, click them to see the interactive version).
Panning and Zooming
This code adds a range selector that’s can be used to pan and zoom around the series data:
dygraph(nhtemp, main = "New Haven Temperatures") %>% dyRangeSelector()
When you hover over the time-series the values of all points at the location of the mouse are shown in the legend:
lungDeaths <- cbind(ldeaths, mdeaths, fdeaths) dygraph(lungDeaths, main = "Deaths from Lung Disease (UK)") %>% dyOptions(colors = RColorBrewer::brewer.pal(3, "Set2"))
Shading and Annotations
There are a wide variety of tools available to annotate time series. Here we demonstrate creating shaded regions:
dygraph(nhtemp, main="New Haven Temperatures") %>% dySeries(label="Temp (F)", color="black") %>% dyShading(from="1920-1-1", to="1930-1-1", color="#FFE6E6") %>% dyShading(from="1940-1-1", to="1950-1-1", color="#CCEBD6")
You can find additional examples and documentation on the dygraphs for R website.
One of the reasons we are excited about dygraphs is that it takes a mature and feature rich visualization library formerly only accessible to web developers and makes it available to all R users.
Action buttons can be tricky to use in Shiny because they work differently than other widgets. Widgets like sliders and select boxes maintain a value that is easy to use in your code. But the value of an action button is arbitrary. What should you do with it? Did you know that you should almost always call the value of an action button from
The newest article at the Shiny Development Center explains how action buttons work, and it provides five useful patterns for working with action buttons. These patterns also work well with action links.
Read the article here.
RStudio is excited to announce the general availability (GA) of shinyapps.io.
Shinyapps.io is an easy to use, secure, and scalable hosted service already being used by thousands of professionals and students to deploy Shiny applications on the web. Effective today, shinyapps.io has completed beta testing and is generally available as a commercial service for anyone.
As regular readers of our blog know, Shiny is a popular free and open source R package from RStudio that simplifies the creation of interactive web applications, dashboards, and reports. Until today, Shiny Server and Shiny Server Pro were the most popular ways to share shiny apps. Now, there is a commercially supported alternative for individuals and groups who don’t have the time or resources to install and manage their own servers.
We want to thank the nearly 8,000 people who created at least one shiny app and deployed it on shinyapps.io during its extensive alpha and beta testing phases! The service was improved for everyone because of your willingness to give us feedback and bear with us as we continuously added to its capabilities.
For R users developing shiny applications that haven’t yet created a shinyapps.io account, we hope you’ll give it a try soon! We did our best to keep the pricing simple and predictable with Free, Basic, Standard, and Professional plans. Each paid plan has features and functionality that we think will appeal to different users and can be purchased with a credit card by month or year. You can learn more about shinyapps.io pricing plans and product features on our website.
We hope to see your shiny app on shinyapps.io soon!
Great news for Shiny and R Markdown enthusiasts!
An Interactive Reporting Workshop with Shiny and R Markdown is coming to a city near you. Act fast as only 20 seats are available for each workshop.
You can find out more / register by clicking on the link for your city!
|East Coast||West Coast|
|March 2 – Washington, DC||April 15 – Los Angeles, CA|
|March 4 – New York, NY||April 17 – San Francisco, CA|
|March 6 – Boston, MA||April 20 – Seattle, WA|
You’ll want to take this workshop if…
You have some experience working with R already. You should have written a number of functions, and be comfortable with R’s basic data structures (vectors, matrices, arrays, lists, and data frames).
You will learn from…
The workshop is taught by Garrett Grolemund. Garrett is the Editor-in-Chief of shiny.rstudio.com, the development center for the Shiny R package. He is also the author of Hands-On Programming with R as well as Data Science with R, a forthcoming book by O’Reilly Media. Garrett works as a Data Scientist and Chief Instructor for RStudio, Inc. GitHub
Shiny version 0.11 is available now! Notable changes include:
- Shiny has migrated from Bootstrap 2 to Bootstrap 3 for its web front end. More on this below.
- The old jsliders have been replaced with ion.rangeSlider. These sliders look better, are easier for users to interact with, and support updating more fields from the server side.
- There is a new
passwordInput()which can be used to create password fields.
eventReactive()functions greatly streamline the use of
actionButtonand other inputs that act more like events than reactive inputs.
For a full set of changes, see the NEWS file. To install, run:
We’ve also posted an article with notes on upgrading to 0.11.
Bootstrap 3 migration
In all versions of Shiny prior to 0.11, Shiny has used the Bootstrap 2 framework for its web front-end. Shiny generates HTML that is structured to work with Bootstrap, and this makes it easy to create pages with sidebars, tabs, dropdown menus, mobile device support, and so on.
The Bootstrap development team stopped development on the Bootstrap 2 series after version 2.3.2, which was released over a year ago, and has since focused their efforts on Bootstrap 3. The new version of Bootstrap builds on many of the same underlying ideas, but it also has many small changes – for example, many of the CSS class names have changed.
In Shiny 0.11, we’ve moved to Bootstrap 3. For most Shiny users, the transition will be seamless; the only differences you’ll see are slight changes to fonts and spacing.
If, however, you customized any of your code to use features specific to Bootstrap 2, then you may need to update your code to work with Bootstrap 3 (see the Bootstrap migration guide for details). If you don’t want to update your code right away, you can use the shinybootstrap2 package for backward compatibility with Bootstrap 2 – using it requires adding just two lines of code. If you do use shinybootstrap2, we suggest using it just as an interim solution until you update your code for Bootstrap 3, because Shiny development going forward will use Bootstrap 3.
Why is Shiny moving to Bootstrap 3? One reason is support: as mentioned earlier, Bootstrap 2 is no longer developed and is no longer supported. Another reason is that there is dynamic community of actively-developed Bootstrap 3 themes. (Themes for Bootstrap 2 also exist, but there is less development activity.) Using these themes will allow you to customize the appearance of a Shiny app so that it doesn’t just look like… a Shiny app.
We’ve also created a package that make it easy to use Bootstrap themes: shinythemes. Here’s an example using the included Flatly theme:
See the shinythemes site for more screenshots and instructions on how to use it.
The shinydashboard package still under development, but feel free to try it out and give us feedback.
RStudio is happy to announce the availability of the shinyapps.io beta.
Shinyapps.io is an easy to use, secure, and scalable hosted service already being used by thousands of professionals and students to deploy Shiny applications on the web. Today we are releasing a significant upgrade as we transition from alpha to beta, the final step before general availability (GA) later this quarter.
New Feature Highlights in shinyapps.io beta
- Secure and manage authorized users with support for new authentication systems, including Google, GitHub, or a shinyapps.io account.
- Tune application performance by controlling the resources available. Run multiple R processes per application instance and add application instances.
- Track performance metrics and simplify application management in a new shinyapps.io dashboard. See an application’s active connections, CPU, memory, and network usage. Review application logs, start, stop, restart, rebuild and archive applications all from one convenient place.
During the beta period, these and all other features in shinyapps.io are available at no charge. At the end of the beta, users may subscribe to a plan of their choice or transition their applications to the free plan.
If you do not already have an account, we encourage anyone developing Shiny applications to consider shinyapps.io beta and appreciate any and all feedback on our features or proposed packaging and pricing.
Happy New Year!