Как сделать блестящее приложение, которое оставляет график по умолчанию пустым и легенду внутри графика - PullRequest
0 голосов
/ 13 сентября 2018

Приведенный ниже код представляет собой блестящее приложение, которое принимает любые данные и создает статистику и графики в зависимости от переменной, которую вы выбираете из данных.Я хочу добавить две вещи из этого блестящего приложения:

Во-первых, если я не выберу какие-либо переменные в первую очередь, график по умолчанию должен быть пустым.Тем не менее, мой график по умолчанию не пуст.Как сделать график по умолчанию пустым?

Во-вторых, когда я выбираю переменные из осей X и Y и строю его, он работает, но не показывает, какая точка на графике соответствует определенному значению.Я также хотел бы добавить легенду о переменных на графике.

c1 <- rnorm(10,0,1)
c2 <- c(rep("txA",5),rep("txB",5))
c3 <- c(1:4,1:4,1:2)
c4 <- rep(LETTERS[1:5],2)
mydata <- data.frame(c1,c2,c3,c4)

library(shiny)
library(ggplot2)

ui <- fluidPage(
fileInput(inputId = "file",
        label = "import file"),
sidebarLayout(
sidebarPanel(
  uiOutput(outputId = "aa"),
  selectizeInput("x","X:",choices = colnames(mydata)),
  selectizeInput("y","Y:",choices = colnames(mydata))
  ),
mainPanel(
          verbatimTextOutput("info"),
          verbatimTextOutput("summary"),
          tableOutput("tb"),
          plotOutput("plot1", click = "plot_click")
          )
          )
)


server <- function(input,output) {



output$aa <- renderUI({
validate(need(input$file != "", ""))
mydata <- read.csv(input$file$datapath)
selectInput(inputId = "aa2",
            label="choose statistics:",
            choices = colnames(mydata))


 })

output$tb <- renderTable({
data <- input$file
if (is.null(data))return()
read.table(data$datapath,sep=",")
})

mysubsetdata <- eventReactive(input$aa2,{
mydata[[input$aa2]]
})


output$summary <- renderPrint({
summary(mysubsetdata())
})

output$plot1 <- renderPlot({  
irx <- input$x
iry <- input$y
p1 <- ggplot(data = mydata,aes_string(irx,iry)) + geom_point()
p1
})

output$info <- renderText({
paste0("x=", input$plot_click$x, "\ny=", input$plot_click$y)
})


}

shinyApp(ui=ui, server=server)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...