1

リンクされた箱ひげ図のグループを作成すると (1 つの箱ひげ図でポイントを選択すると、すべての箱ひげ図の対応するポイントが強調表示されます)、箱ひげ図は不確実な時間 (1 回だけ、場合によっては最大 20 回) 更新され続けます。

以下のサンプルコードを実行してください。

問題の原因は geom_jitter() にあると思います。ボックスプロットが更新されないようにする方法はありますか? ありがとう。

library(shiny)
library(ggplot2)

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

  X = data.frame(x1 = rnorm(1000),
                 x2 = rnorm(1000),
                 week = sample(LETTERS[1:10],1000,replace = TRUE)
                 )

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

  output$p1 = renderPlot({
    set.seed(123)
    ggplot(D(),aes(x=week,y=x1))+
      geom_boxplot() +
      geom_jitter(aes(color=selected_))+
      scale_color_manual(values = c("black","red"),guide=FALSE)


  })

  output$p2 = renderPlot({
    set.seed(123)
    ggplot(D(),aes(x=week,y=x2))+
      geom_boxplot() +
      geom_jitter(aes(color=selected_))+
      scale_color_manual(values = c("black","red"),guide=FALSE)

  })

}

ui <- fluidPage(
  splitLayout(
    plotOutput("p1",brush = "brush_1"),
    plotOutput("p2",brush = "brush_1")
  )
)

shinyApp(ui = ui, server = server)

更新: 2016-9-16

に置き換えgeom_jitterてみましgeom_pointたが、グラフは引き続き更新されます。

だからgeom_jitter容疑者ではないかもしれません。

では、地球上の問題の原因は何ですか?

4

2 に答える 2

1

その理由は、プロットの 1 つをブラッシングすると、ソース テーブルが常に更新され続けるためだと思います。すべてのプロットが同じブラシ ID を使用しているため、どの input$brush_1 が実際の「ブラシ」アクションであるかを識別できません。1 つのチャートがブラッシングされ、input$brush_1 が変更され、リアクティブ テーブル D も更新されます。新しいリアクティブ テーブル プロットに基づく別のプロットを再度プロットし、input$brush_1 を再度変更します...

上記の考えから、コードに基づいて、入力ブラシ アクションを異なるプロットから区別するために新しいものを作成しました。boxplots が不確実な回数だけ自分自身を更新し続けるという問題は解決されたようです。以下のコードを試してください:

于 2016-09-18T14:23:55.507 に答える