VOOZH about

URL: https://plotly.com/r/dropdowns/

⇱ Dropdown events in R


Simple Dropdown Menu Example

library(plotly)library(MASS)covmat<-matrix(c(0.8,0.4,0.3,0.8),nrow=2,byrow=T)df<-mvrnorm(n=10000,c(0,0),Sigma=covmat)df<-as.data.frame(df)colnames(df)<-c("x","y")fig<-plot_ly(df,x=~x,y=~y,alpha=0.3)fig<-fig%>%add_markers(marker=list(line=list(color="black",width=1)))fig<-fig%>%layout(title="Drop down menus - Plot type",xaxis=list(domain=c(0.1,1)),yaxis=list(title="y"),updatemenus=list(list(y=0.8,buttons=list(list(method="restyle",args=list("type","scatter"),label="Scatter"),list(method="restyle",args=list("type","histogram2d"),label="2D Histogram")))))fig

Add Two Dropdown Menus to Restyle Graph

library(plotly)x<-seq(-2*pi,2*pi,length.out=1000)df<-data.frame(x,y1=sin(x),y2=cos(x))fig<-plot_ly(df,x=~x)fig<-fig%>%add_lines(y=~y1,name="A")fig<-fig%>%add_lines(y=~y2,name="B",visible=F)fig<-fig%>%layout(title="Drop down menus - Styling",xaxis=list(domain=c(0.1,1)),yaxis=list(title="y"),updatemenus=list(list(y=0.8,buttons=list(list(method="restyle",args=list("line.color","blue"),label="Blue"),list(method="restyle",args=list("line.color","red"),label="Red"))),list(y=0.7,buttons=list(list(method="restyle",args=list("visible",list(TRUE,FALSE)),label="Sin"),list(method="restyle",args=list("visible",list(FALSE,TRUE)),label="Cos")))))fig

What About Dash?

Dash for R is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.

Learn about how to install Dash for R at https://dashr.plot.ly/installation.

Everywhere in this page that you see fig, you can display the same figure in a Dash for R application by passing it to the figure argument of the Graph component from the built-in dashCoreComponents package like this:

library(plotly)fig<-plot_ly()# fig <- fig %>% add_trace( ... )# fig <- fig %>% layout( ... ) library(dash)library(dashCoreComponents)library(dashHtmlComponents)app<-Dash$new()app$layout(htmlDiv(list(dccGraph(figure=fig))))app$run_server(debug=TRUE,dev_tools_hot_reload=FALSE)