在 R 中使用 plotly,更新形状和绘图的可见性
Using plotly in R, update visibility of shapes and plots
我正在尝试使用按钮更新形状和绘图。当我点击 button1 时,shape1 和 plot1 出现;而 button2 将导致 shape2 和 plot2 出现。我尝试了更新和重新布局,但都没有用。
感谢任何帮助。
data1 <- runif(100,0,1000)
data2 <- runif(5,0,1000)
data3 <- runif(100,0,1000)
data4 <- runif(500,0,1000)
p <- plot_ly() %>%
add_trace(type = 'scatter', mode = 'markers',
y = data1, visible=T, marker = list(color = 'blue')) %>%
add_trace(type = 'scatter', mode = 'markers',
y = data2, visible=F, marker = list(color = 'red'))%>%
add_trace(type = 'scatter', mode = 'markers',
y = data3, visible=T, marker = list(color = 'gray')) %>%
add_trace(type = 'scatter', mode = 'markers',
y = data4, visible=F, marker = list(color = 'black')) %>%
layout(title ="Data12",
updatemenus = list(
list(type='buttons',
buttons = list(
list(method = "update",
args = list(list(visible=c(T, F,T,F)),list(title
="Data12"),list(shapes=c(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "green",
line = list(color = "green")))),
label = 'data12'),
list(method = "update",
args = list(list(visible=c(F,T,F,T)),list(title
="Data34"),list(shapes=c(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor =
"blue", line = list(color = "blue")))),
label = 'data34')
))))
p
也许你可以试试这个:
library(plotly)
shapes12 = list(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "green",
line = list(color = "green"))
shapes34 = list(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "blue",
line = list(color = "blue"))
plot_ly() %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data1",
y = data1, marker = list(color = 'blue')) %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data2",
y = data2, marker = list(color = 'red'))%>%
add_trace(type = 'scatter', mode = 'markers', name = "Data3",
y = data3, marker = list(color = 'gray')) %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data4",
y = data4, marker = list(color = 'black')) %>%
layout(updatemenus = list(
list(type='buttons',
buttons = list(
list(method = "update",
args = list(list(visible=c(T, T,F,F)),list(title ="Data12", shapes = list(shapes12))),
label = 'data12'),
list(method = "update",
args = list(list(visible=c(F,F,T,T)),list(title ="Data34", shapes = list(shapes34))),
label = 'data34')
)))
)
我正在尝试使用按钮更新形状和绘图。当我点击 button1 时,shape1 和 plot1 出现;而 button2 将导致 shape2 和 plot2 出现。我尝试了更新和重新布局,但都没有用。
感谢任何帮助。
data1 <- runif(100,0,1000)
data2 <- runif(5,0,1000)
data3 <- runif(100,0,1000)
data4 <- runif(500,0,1000)
p <- plot_ly() %>%
add_trace(type = 'scatter', mode = 'markers',
y = data1, visible=T, marker = list(color = 'blue')) %>%
add_trace(type = 'scatter', mode = 'markers',
y = data2, visible=F, marker = list(color = 'red'))%>%
add_trace(type = 'scatter', mode = 'markers',
y = data3, visible=T, marker = list(color = 'gray')) %>%
add_trace(type = 'scatter', mode = 'markers',
y = data4, visible=F, marker = list(color = 'black')) %>%
layout(title ="Data12",
updatemenus = list(
list(type='buttons',
buttons = list(
list(method = "update",
args = list(list(visible=c(T, F,T,F)),list(title
="Data12"),list(shapes=c(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "green",
line = list(color = "green")))),
label = 'data12'),
list(method = "update",
args = list(list(visible=c(F,T,F,T)),list(title
="Data34"),list(shapes=c(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor =
"blue", line = list(color = "blue")))),
label = 'data34')
))))
p
也许你可以试试这个:
library(plotly)
shapes12 = list(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "green",
line = list(color = "green"))
shapes34 = list(type="rect",x0=0,x1=100, xref="x",
y0=0,y1=100, yref="y",fillcolor = "blue",
line = list(color = "blue"))
plot_ly() %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data1",
y = data1, marker = list(color = 'blue')) %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data2",
y = data2, marker = list(color = 'red'))%>%
add_trace(type = 'scatter', mode = 'markers', name = "Data3",
y = data3, marker = list(color = 'gray')) %>%
add_trace(type = 'scatter', mode = 'markers', name = "Data4",
y = data4, marker = list(color = 'black')) %>%
layout(updatemenus = list(
list(type='buttons',
buttons = list(
list(method = "update",
args = list(list(visible=c(T, T,F,F)),list(title ="Data12", shapes = list(shapes12))),
label = 'data12'),
list(method = "update",
args = list(list(visible=c(F,F,T,T)),list(title ="Data34", shapes = list(shapes34))),
label = 'data34')
)))
)