Я создаю приложение Shiny, в котором пользователь может добавлять различные кривые к графику, но я не могу создать график, чтобы сохранить уже добавленные кривые.Как я могу это сделать?
В приведенном ниже упрощенном воспроизводимом коде всего 8 кривых возможностей, основанных на выборе из 3 радиокнопок, каждый из которых имеет 2 варианта.Я хотел бы оставить их в качестве радиокнопок и не использовать флажки, поскольку в моем реальном приложении, над которым я работаю, будет около 300 комбинаций, которые будут слишком запутанными для использования с флажками.Пожалуйста, смотрите код ниже:
library(shiny)
library(plotly)
library(dplyr)
data111 <-data.frame("x"=1:10, "y"=c(99,98,97,96,95,94,93,92,91,90))
data112 <-data.frame("x"=5:14, "y"=c(79,78,77,76,75,74,73,72,71,70))
data121 <-data.frame("x"=9:18, "y"=c(59,58,57,56,55,54,53,52,51,50))
data122 <-data.frame("x"=3:12, "y"=c(49,48,47,46,45,44,43,42,41,40))
data211 <-data.frame("x"=7:16, "y"=c(29,28,27,26,25,24,23,22,21,20))
data212 <-data.frame("x"=11:20, "y"=c(19,18,17,16,15,14,13,12,11,10))
data221 <-data.frame("x"=2:11, "y"=c(95,94,93,92,91,90,89,88,87,86))
data222 <-data.frame("x"=1:10, "y"=c(45,44,43,42,41,40,39,38,37,36))
ui <- fluidPage(
titlePanel("Curve selection"),
sidebarLayout(
sidebarPanel(
radioButtons(inputId = "option",
label="Choose the option",
choices=c("option1"=1,
"option2"=2),
selected = 1),
radioButtons(inputId = "type",
label="Choose the type",
choices=c("type1"=1,
"type2"=2),
selected = 1),
radioButtons(inputId = "group",
label="Choose the group",
choices=c("group1"=1,
"group2"=2),
selected = 1),
actionButton("add","Add curve to the plot")
),
mainPanel(
plotlyOutput("plot")
)
)
)
server <- function(input, output) {
data <- eventReactive(input$add,{
get(paste0("data",input$option,input$type, input$group))
})
output$plot <- renderPlotly({
data <- data()
p <-plot_ly(type = "scatter", mode="lines")
p<-add_data(p, data) %>% add_trace(p, x= ~x, y = ~y)
p
})
}
shinyApp(ui = ui, server = server)
Я ожидаю, что пользователь может выбрать опцию, тип и группу в выбор радиокнопок, а затем добавить кривую.После этого сделайте новый выбор параметра, введите и сгруппируйте и добавьте новую кривую к уже существующей на графике.Пользователь должен иметь возможность сделать это несколько раз.Вы знаете, как этого добиться?
Спасибо!