2016-09-21 214 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和刷