Я пытаюсь создать диаграмму с раскрывающимся списком, в которой пользователь может выбрать, что отображать на диаграмме (например, «фильтр» на диаграмме Power BI, но я хочу остаться в R).Так что я иду с Shiny и Plotly (любые другие предложения приветствуются!).
Большинство уроков указывают на жесткое кодирование входных выборок, но у меня есть тысячи выборок, поэтому я хочу, чтобы этот список создавался динамически из поля в моем источнике данных.Вот пример того, куда я дошел, я хочу, чтобы раскрывающийся список позволял пользователю выбирать между Домом 1 и Домом 2:
library(shiny)
library(plotly)
df <- data.frame(Name = c("Home 1", "Home 1", "Home 2", "Home 2"), Rating = c("Good", "Excellent", "Good", "Good"),
Date = c("2016-07-14", "2016-08-14", "2016-07-14", "2016-08-14"))
# Get a basic shiny app working with dropdowns
ui <- fluidPage(
plotlyOutput("plot"),
selectInput(df$Name, "Select Name", df$Name),
verbatimTextOutput("event")
)
server <- function(input, output) {
output$plot <- renderPlotly({
plot_ly(df, x = df$Date, y = df$Rating, type = 'scatter', mode = 'line')
})
output$event <- renderPrint({
d <- event_data("plotly_hover")
if (is.null(d)) "Hover on a point!" else d
})
}
shinyApp(ui, server)
Я не знаю, куда поместить выбранный вход изselectInput()
в функцию plot_ly()
, так что этот код, очевидно, генерирует кучу предупреждений и не работает.
Warning in if (!is.na(attribValue)) { :
the condition has length > 1 and only the first element will be used
Warning in charToRaw(enc2utf8(text)) :
argument should be a character vector of length 1
all but the first element will be ignored
Я чувствую, что я близко, но я измотан и в основном нуждаюсь в ком-тогораздо лучше, чем я, чтобы указать мне правильное направление.
Или есть ли лучший способ использовать пакеты, кроме блестящих и сюжетных?
Спасибо