Shiny Developer Series - Episode 1 - Follow-up Thread

Following up with questions from the Shiny Developer series here:

Q - Will we be able to drill down in graphs any time soon? The same way you can have hierarchies in most other visualization tools, eg Qlik, Power BI

Q - Do you guys use docker in production? We are currently working on an app that will live in entirely in a docker container

Q - Layout "responsiveness": any plans to make this a bit more automatic, self-controlled? As a beginner user, I've found that even making the screen layout fixed to desktop layout for all devices proved somewhat hard. Might Bootstrap 4 facilitate this?

Q - Server: This question is a bit fuzzy, from a commercial perspective perhaps. But let's see. Currently, for a non-IT, low-budget user of Shiny--as there are some of us in academia for instance--, it's not easy to create a self-hosted Ubuntu server. Do you see any possibilities for this self-hosted means to become any easier?

7 Likes

Will we be able to drill down in graphs any time soon? The same way you can have hierarchies in most other visualization tools, eg Qlik, Power BI

Drill-down graphs in shiny have been possible for quite some time. Compared to these other tools, using shiny to implement drill-down does currently require more effort and thinking from the developer, but in my mind, that extra effort is well worth it, because you can do way more with it once you understand it.

For example, here's how to implement various drill-down graphs with shiny and plotly. The reactive programming concepts that power those examples translate to any shiny output widget (e.g., ggplot2, base, leaflet, rbokeh, DT, etc), not just plotly. That gives you essentially limitless potential in terms of what types of graphs you want to put into a drill-down as well as how you want to share that information across multiple views.

9 Likes

Q - Layout "responsiveness": any plans to make this a bit more automatic, self-controlled? As a beginner user, I've found that even making the screen layout fixed to desktop layout for all devices proved somewhat hard. Might Bootstrap 4 facilitate this?

We do hope to make it easier to create mobile-friendly layouts with our UI enhancement efforts. Hopefully we'll have something to show by the beginning of next year.

Q - Server: This question is a bit fuzzy, from a commercial perspective perhaps. But let's see. Currently, for a non-IT, low-budget user of Shiny--as there are some of us in academia for instance--, it's not easy to create a self-hosted Ubuntu server. Do you see any possibilities for this self-hosted means to become any easier?

If I'm understanding this question correctly, you mean that setting up the open source version of Shiny Server is challenging, and you are looking for an easier-to-set-up system that is also free or very low cost. We do have RStudio Connect, which is easy to set up and can serve Shiny applications. It is a commercial product, but if you're in academia, you can get it for reduced price or free, depending on how it is to be used. Please see our academic pricing page for more information.

5 Likes

@winston

Thank you very much.

There's excitement for the UI revamp!

Regarding the server, that is what I meant indeed. I've used the free, 5-app server for some time--which has been invaluable. Just for larger projects in the future, I'll take the plunge to some server.

All the best

2 Likes

2 posts were split to a new topic: shiny app in a docker

Firstly, thanks for the awesome webinar last week. It is very inspiring! Speaking of drilling down in graphs and hierarchies in visualization, I made a minimal demo shiny app that take the usage of D3 javascript library.

  • Drilling down from table to graphs: use DT to illustrate the table and DT_selected_rows() will do the query and drilling down to the subset of data, then we can use the data to render the plot.

  • Drilling down from graphs to table/graphs similar with Power BI: if you are looking for cross-filtering, plotly recently has this function. If you are looking for more similar to BI software, I have a minimal demo shiny app that take the usage of D3 javascript library. Repo: https://github.com/jienagu/D3_folded_charts You can click either the bar chart or the drop-down selection to drill down into one specific company. Also, you can generate dynamic reports based on your selection. In addition, interacting with a dynamic reporting system is one thing that PowerBI can not beat R/ Shiny.

9 Likes

For me (currently in academia) it's less the ease of setting up a server but more the server maintenance. I can spin up a server, but if there's no long-term plan or support for maintenance then it becomes a non-starter.

2 Likes

Wonderful! Inspired from this post, I made a shiny product example last weekend that demonstrates a full workflow from data entry to dynamic reporting incorporated with drill-down pie chart using plotly. Repo: https://github.com/jienagu/Shiny_Full_Flow Using reactive concept to power the drill-down in graph is an awesome way to keep code efficient. Here is a live demo in case anyone would like to check it out: https://appforiarteam.shinyapps.io/Shiny_Plotly/

One potential limitation of using this way may be when applying drill-down chart to a dynamic data instead of a static data set. Take your 17.4.1 pie chart as an example, since categories <- unique(sales$category) should be outside of server, the sales data set can not be a reactive data set from server side. So if sales is a reactive data set, I need to assign all possible categories values/levels to categories object in order to make it work.

Another way to build a drill-down design is to reactive through the input (refer to my post below), the concept is the same but using updateSelectInput() to link with id_clicked, then interact with group_by() to drill-down categories.

Thanks for all of your sharing!

7 Likes

Awesome work and great points, @Jiena!

2 Likes

Would this work with shapefiles on a map, clicking a polygon/region to get results? Or create a polygon and get the results filtered for that polygon?

EDIT: I should have looked harder first: It seems yes (https://plotly-r.com/linking-views-with-shiny.html#advanced-applications) and possibly in the future (https://plotly-r.com/linking-views-with-shiny.html#drag-brush

Cool, Great job with this shiny dashboard @Jiena

:confetti_ball: :clap:

1 Like

This topic was automatically closed 54 days after the last reply. New replies are no longer allowed.