Ich möchte ggplot aktualisieren. Hier habe ich die Plotfunktion benutzt, aber stattdessen möchte ich ggplot verwenden, das automatisch aktualisiert wird. GGplot wird automatisch mit selectsizeinput aktualisiert. Wie geht das ?? Danke im Voraus. HierWie Ggplot mit Selectsize-Eingabe in R aktualisiert wird glänzend
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")))
})
}
Bitte geben Sie ein minimales Beispiel für die Wiedergabe des Verhaltens, das Sie nicht mögen, und geben Sie detaillierte Erwartungen. – HubertL