带多面板图的r悬停

时间:2019-01-08 20:50:09

标签: r shiny

嗨,我有一个闪亮的应用程序,可以帮助用户可视化来自自动DNA测序仪的电泳图(基本上是光谱)。我希望用户能够将鼠标悬停在峰上并找出峰离开仪器的时间。我还希望能够通过在一个光谱上绘制另一个光谱来比较多个电泳图。

如果绘制单个光谱,则可以使用ui中对plotOutput()提供的'hover'选项来恢复鼠标的x位置。如果我使用基本图形和par(mfrow = c(n,1))(其中n是光谱数)叠加图,则结果是不可预测的。基本上,x位置可在部分绘图区域恢复,但不能在整个区域恢复。

作为最后的一条信息,我几年前编写了这个应用程序,并且一直按预期工作,直到我将R和闪亮的软件包更新为相当新的版本:(R 3.4.4;闪亮的1.2.0)。

我包含了一个app.R文件,该文件使用直方图和忠实的数据在一个简单的案例中重现了此问题,并展示了我一直在采用的方法。无论我将hoverOpts中的'clip'设置为TRUE还是FALSE,我都会得到相同的行为。

感谢您的帮助 艾伦

library(shiny)

ui = fluidPage(

titlePanel("Mulitpanel hover: Old Faithful Geyser Data"),

sidebarLayout(
  sidebarPanel(
     sliderInput("bins","Number of bins:",min = 1,max = 50,value = 30)
  ),

  mainPanel(
     textOutput("xpos"),
     plotOutput("distPlot",hover=hoverOpts(id="plot_hover",clip=TRUE))
      )
   )
 )

 server = function(input, output) {
   output$xpos = renderText({paste("x coord:",input$plot_hover$x)})
   output$distPlot = renderPlot({
   x    = faithful[, 2] 
   bins = seq(min(x), max(x), length.out = input$bins + 1)

   par(mfrow=c(2,1))
   hist(x, breaks = bins, col = 'darkgray', border = 'white')
   hist(x, breaks = bins, col = 'orange', border = 'white')
  })
 }
 shinyApp(ui = ui, server = server)

0 个答案:

没有答案