#r #shiny #plotly #subset #reactive
#r #блестящий #плотный #подмножество #реактивное
Вопрос:
Я хочу создать график на основе реактивного подмножества, он работает для отображения моей таблицы, но я не могу использовать столбцы подмножества для построения этого графика.
structure(list(WEG = c(0, 0.01, 0.02, 0.02, 0.03, 0.04), VERTIKAL_KRAFT_FY = c(358.77,
358.78, 358.78, 358.79, 358.79, 358.8), VERSCHIEBEKRAFT_FX = c(0,
0, 0, 0, 0, 0), HD = c(-9.39, -9.39, -9.41, -9.36, -9.36, -9.38
), PROBE_NR = c(6812L, 6812L, 6812L, 6812L, 6812L, 6812L), ZYKLUS = c(101L,
101L, 101L, 101L, 101L, 101L)), row.names = c(NA, 6L), class = "data.frame")
ui <- fluidPage(
selectInput("Select1","Select Test",unique(d$PROBE_NR)),
selectInput("Select2","Select Cycle",choices = NULL)
mainPanel(
tableOutput("view"),
plotlyOutput('plot'),
)
)
server <- function(input, output,session) {
observeEvent(input$Select1,{
updateSelectInput(session,'Select2',
choices=unique(d$ZYKLUS[d$PROBE_NR==input$Select1]))
})
newData <- reactive({
t <- subset(d, d$PROBE_NR == input$Select1 amp; d$ZYKLUS %in% input$Select2) #subset
return(t)
})
output$view <- renderTable({ newData() })
output$plot <- renderPlotly({
data = newData()
plot<-plot_ly(data, color = ~source, x = ~WEG, y = ~HD, mode = "lines", type = "scatter") %>%
layout( xaxis = list( title=input$Selectx),
yaxis = list( title=input$Selecty ), title = "Plot1" )
plot
})
}
shinyApp(ui = ui, server = server)
Я хотел бы взять несколько столбцов подмножества t, чтобы построить их.
Комментарии:
1. Пожалуйста, предоставьте воспроизводимый пример.
2. @ismirsehregal только что обновил описание
3. Пожалуйста, используйте dput для предоставления примеров.
4. @Florian uodated
Ответ №1:
Столбец, source
указанный в качестве color
аргумента plotly, не существует в вашем data.frame
. Пожалуйста, проверьте следующее:
library(shiny)
library(plotly)
d <- structure(
list(
WEG = c(0, 0.01, 0.02, 0.02, 0.03, 0.04),
VERTIKAL_KRAFT_FY = c(358.77,
358.78, 358.78, 358.79, 358.79, 358.8),
VERSCHIEBEKRAFT_FX = c(0,
0, 0, 0, 0, 0),
HD = c(-9.39, -9.39, -9.41, -9.36, -9.36, -9.38),
PROBE_NR = c(6812L, 6812L, 6812L, 6812L, 6812L, 6812L),
ZYKLUS = c(101L,
101L, 101L, 101L, 101L, 101L)
),
row.names = c(NA, 6L),
class = "data.frame"
)
ui <- fluidPage(
selectInput("Select1", "Select Test", unique(d$PROBE_NR)),
selectInput("Select2", "Select Cycle", choices = NULL),
mainPanel(tableOutput("view"),
plotlyOutput("plot"))
)
server <- function(input, output, session) {
observeEvent(input$Select1, {
updateSelectInput(session, 'Select2',
choices = unique(d$ZYKLUS[d$PROBE_NR == input$Select1]))
})
newData <- reactive({
subset(d, d$PROBE_NR == input$Select1 amp; d$ZYKLUS %in% input$Select2)
})
output$view <- renderTable({
newData()
})
output$plot <- renderPlotly({
plot_ly(
data = newData(),
# color = ~ source,
x = ~ WEG,
y = ~ HD,
mode = "lines",
type = "scatter"
) %>%
layout(
xaxis = list(title = input$Selectx),
yaxis = list(title = input$Selecty),
title = "Plot1"
)
})
}
shinyApp(ui = ui, server = server)