2

最初にここで再現可能なコードを実行してください。

作成された 2 つのボックス プロットを次に示します。上はシンプルに。一番下は の箱ひげ図facet_gridです。

それらをつなげていくという発想です。それらの 1 つのポイントをブラッシングすると、ポイントと他の箱ひげ図のポイントが強調表示されます。

現在、1 つのボックス プロット内のポイントの選択がうまく機能していないようです。

そして、箱ひげ図はfacet_gridそれ自体では機能しません。

library(shiny)
library(ggplot2)


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

  mtcars$cyl = as.character(mtcars$cyl)
  mtcars$gear = as.character(mtcars$gear)

  vals <- reactiveValues( keeprows = FALSE)

  observeEvent(input$brush_1,{
    Res=brushedPoints(mtcars,input$brush_1,allRows = TRUE)
    vals$keeprows = Res$selected_
  })
  observeEvent(input$brush_2,{
    Res=brushedPoints(mtcars,input$brush_2,allRows = TRUE)
    vals$keeprows = Res$selected_
  })


  output$table1 = renderPrint({
    brushedPoints(mtcars,input$brush_1,allRows = TRUE)
  })

  output$table2 = renderPrint({
    brushedPoints(mtcars,input$brush_2,allRows = TRUE)
  })

  output$plot_1 = renderPlot({
    set.seed(123)
    ggplot(mtcars,aes(x=cyl,y=mpg)) + 
      geom_boxplot(outlier.shape = NA) + 
      geom_jitter(aes(color=vals$keeprows),width=0.2)+
      scale_color_manual(values = c("black","red"),guide=FALSE)    
  })
  output$plot_2 = renderPlot({
    set.seed(123)
    ggplot(mtcars,aes(x=cyl,y=mpg)) + 

      facet_grid(.~gear)+

      geom_boxplot(outlier.shape = NA) + 
      geom_jitter(aes(color=vals$keeprows),width=0.2)+
      scale_color_manual(values = c("black","red"),guide=FALSE)

  })


}

ui <- fluidPage(

  plotOutput("plot_1",brush = brushOpts("brush_1",resetOnNew = FALSE)),
  plotOutput("plot_2",brush = brushOpts("brush_2",resetOnNew = FALSE)),
  splitLayout(verbatimTextOutput("table1"),verbatimTextOutput("table2"))

)

shinyApp(ui = ui, server = server)

重要な問題はfacet_grid機能にあると思います。

どうすればfacet_gridうまく機能しますかbrush

ありがとう。

4

0 に答える 0