【发布时间】:2020-09-30 01:37:12
【问题描述】:
我是闪亮的 R 和 Plotly 的新手。我正在尝试构建一个具有两个下拉框的仪表板,我们通过这些下拉框获取输入并绘制 Plotly 图。所有数据集都有时间、温度和重量列。时间在 x 轴上,对于 y 轴,我们可以选择温度或重量,或者两者兼而有之。
第一个下拉菜单接受要选择的数据集的输入。
第二个下拉框接受输入以从所选数据集中选择变量。 然而,我已经弄清楚的大多数事情,y 轴标签不会动态变化。标签正在获取 (input$variable) 而不是 temp 或 weight。
here is the shiny r output 这也是可重现的示例和我的代码
library(shiny)
library(plotly)
library(DT)
df1 <- data.frame("time" = 1:10, "temp" = c(21,15,31,12,23,45,67,34,54,10), "weight" = c(10,20,30,40,65,35,68,89,100,23), stringsAsFactors = FALSE)
df2 <- data.frame("time" = 1:10, "temp" = c(31,65,31,22,23,45,67,54,54,45), "weight" = c(30,20,40,40,65,85,68,89,14,24), stringsAsFactors = FALSE)
ui <- fluidPage(
titlePanel( div(column(width = 5, h2('title here')), )),
# Input: Selector for choosing dataset
selectInput(inputId = "dataset",
label = "Choose a dataset:",
choices = c("df1","df2")),
selectInput(inputId = "variable",
label = "Variable selection",
choices = c("temp","weight"),
selected = "weight",
multiple = FALSE),
mainPanel(
# Output
tabsetPanel(type = "tabs",
tabPanel("Plot", plotlyOutput('plot')),
tabPanel("Data", DT::dataTableOutput("table")),
tabPanel("Key_metrics", DT::dataTableOutput("Key_metrics")))
)
)
server <- function(input, output) {
dataDf <- reactive({
temp <- get(input$dataset)
})
output$plot <- renderPlotly(
plot_ly(dataDf(), x = ~time, y =~get(input$variable), type = 'scatter', mode = 'lines', name = "temp") %>%
add_trace(dataDf(), x = ~time, y = ~weight, type = 'scatter', mode = 'lines',name = "weight")
)
output$table <- DT::renderDataTable({
dataDf()
})
output$Key_metrics <- DT::renderDataTable({
})
}
shinyApp(ui,server)
【问题讨论】: