Я хочу обновить ggplot. Здесь я использовал функцию графика, но вместо этого хочу использовать ggplot, который обновляется автоматически. GGplot автоматически обновляется с помощью selectsizeinput. Как это сделать ?? Заранее спасибо.Как обновить Ggplot с помощью selectsize input в R shiny
ui.r
library(shiny)
shinyUI(fluidPage(
titlePanel("Multivariable plot"),
sidebarLayout(
sidebarPanel(
fileInput("file", label = h3("Select CSV File")),
checkboxInput(inputId = 'header', label = 'col names', value = TRUE),
radioButtons(inputId = 'sep', label = 'Seperator', choices = c("comma"=',',"semi comma"=';'), selected = ','),
#checkboxGroupInput("choices1", label = h3("Wybierz Kolumny"), choices = NULL),
# there is combobox to pick column
selectInput("combobox", label = h3("x var"),choices = NULL),
#selectInput("combobox1", label = h3("y var"),choices = NULL)
selectizeInput("combobox1", label = h3("y var"), choices = NULL ,multiple = TRUE)
),
mainPanel(
uiOutput("tb")
)
)
))
server.r
function(input, output, session){
data <- reactive({
file1 <- input$file
if(is.null(file1)){return()}
dataSet <- read.csv(file=file1$datapath, sep=input$sep, header = input$header)
#updateCheckboxGroupInput(session, "choices1", choices = colnames(dataSet))
# this line updates selection in combobox
updateSelectInput(session, "combobox", choices = colnames(dataSet))
updateSelectizeInput(session, "combobox1", choices = colnames(dataSet), server = TRUE)
dataSet
})
output$table <- renderTable({
if(is.null(data())){return()}
data()
})
output$multivarplot <- reactivePlot(function(){
x <- data()[, input$combobox]
ydat <- data.frame(data()[, input$combobox1])
xval<-data.frame(x,ydat)
# ggplot(xval, aes(x = reorder(x, -x), y = y))+geom_point(colour='red')
#g= ggplot(xval, aes(x,ydat[,1]))+geom_point(colour='red')
ny <- ncol(ydat)
par(mfcol=c(12,12),mfrow=c(1,1))
if(ny==1)
plot.default(x,ydat[,1],xaxt="n",col="blue")
axis(1, at=1:length(xval$x),labels = xval$x)
if (ny==2)
{ y1 <- ydat[,1]
y2 <- ydat[,2]
plot.default(x, y1, ylim = range(c(y1,y2)),col='red')
points(x,y2)}
})
output$tb <- renderUI({
tabsetPanel(tabPanel("Table", tableOutput("table")),
tabPanel("Plot",
plotOutput("multivarplot")))
})
}
, пожалуйста, сделайте минимальный пример, воспроизводящий поведение, которое вам не нравится, и укажите подробные ожидания. – HubertL