2016-09-21 216 views
0

如何使畫筆工作並將所選點突出顯示爲紅色。R閃亮的ggplot畫筆

看來brushedPoints函數工作不正常。

library(shiny) 
library(ggplot2) 


server <- function(input, session, output) { 

    D = reactive({ 
    brushedPoints(mtcars,input$brush_1, allRows = TRUE) 
    }) 

    output$Plot = renderPlot({ 
    set.seed(1) 
    X = D() 
    X[,"cyl"] = as.character(X[,"cyl"]) 

    ggplot(X,aes_string(x="cyl",y="mpg")) + 
     geom_boxplot(outlier.shape = NA) + 
     geom_jitter(aes(color = selected_))+ 
     scale_color_manual(values = c("black","red"),guide=FALSE) 

    }) 

    output$log = renderPrint({ 
    input$brush_1 
    }) 

    output$Data = renderPrint({ 
    D() 
    }) 
} 

ui <- fluidPage(
    plotOutput("Plot",brush = "brush_1"), 
    verbatimTextOutput("Data"), 
    verbatimTextOutput("log") 

) 

shinyApp(ui = ui, server = server) 

回答

1

的問題存在,因爲你在brushedPointsggplot使用不同的數據: 轉換列字符

可以前brushedPoints

library(shiny) 
library(ggplot2) 


server <- function(input, session, output) { 
    mt=mtcars 
    mt[,"cyl"] = as.character(mt[,"cyl"]) 
    D=reactive({brushedPoints(mt,brush = input$brush_1, allRows = TRUE)}) 

    output$Plot = renderPlot({ 
    set.seed(1) 
     X <- D() 
    ggplot(X,aes_string(x="cyl",y="mpg")) + 
     geom_boxplot(outlier.shape = NA) + 
     geom_jitter(aes(color = selected_))+ 
     scale_color_manual(values = c("black","red"),guide=FALSE) 

    }) 

    output$log = renderPrint({ 
    input$brush_1 
    }) 

    output$Data = renderPrint({ 
    D() 
    }) 
} 

ui <- fluidPage(
    plotOutput("Plot",brush = "brush_1"), 
    verbatimTextOutput("Data"), 
    verbatimTextOutput("log") 

) 

shinyApp(ui = ui, server = server) 

PS

框中嘗試編輯數據陰謀刷工作不平淡,因爲所有的x座標 - 離散,你可以選擇它只有當se LECT箱的中間(點沒有放在真正的位置,但轉移到左邊或右邊 - 因爲geom_jitter的)

至於說here沒有辦法使用geom_jitter和刷