Привет, у меня есть блестящее приложение, которое помогает пользователю визуализировать электрофореграммы (в основном, спектры), полученные от автоматических секвенаторов ДНК. Мне бы хотелось, чтобы пользователь мог парить над пиком и узнавать, когда пик сходит с инструмента. Я также хотел бы иметь возможность сравнивать несколько электроферограмм, нанося спектр один на другой.
Если я нанесу один спектр, я смогу восстановить x-положение мыши с помощью опции 'hover', предоставленной plotOutput () в пользовательском интерфейсе. Если я составлю графики с использованием базовой графики и соотношения (mfrow = c (n, 1)), где n - количество спектров, результаты будут непредсказуемыми. В основном, положение x можно восстановить в части области графика, но не во всем.
В качестве последней информации, я написал это приложение несколько лет назад, и оно работало, как и ожидалось, пока я не обновил R и блестящий пакет до довольно недавних версий: (R 3.4.4; блестящий 1.2.0).
Я включил файл app.R, который воспроизводит эту проблему в простом случае с использованием гистограмм и старых верных данных и показывает подход, который я использовал. Я получаю то же самое поведение, независимо от того, установил ли я «clip» в hoverOpts значение TRUE или FALSE.
Спасибо за любую помощь
Allan
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)