gpt4 book ai didi

r - 在 R 中单击另一个绘图更改绘图的限制

转载 作者:行者123 更新时间:2023-12-04 11:27:28 24 4
gpt4 key购买 nike

我需要显示两个图。第一个图是主要的散点图。每次单击第一个图中的一个点时,都必须更改第二个图。所以我需要类似于 https://davidgohel.github.io/ggiraph/index.html 图片的行为

更准确地说,第一个图的每个点都必须与第二个图的 x 限制相关联。

我找到了对应的例子How to display many points from plotly_click in R Shiny?并相应地修改它

library(ggplot2)
library(plotly)
library(shiny)

ui <- fluidPage(
plotlyOutput("plot1"),
plotlyOutput("plot2")
)

range2=1000000
p1x=runif(10)
p1y=runif(10)
p1t=runif(10)*range2

times=seq(1,range2)
#ys=cumsum(rnorm(range2)/sqrt(range2))
ys=runif(range2)


plot2xlim=c(1000,2000)
p2 <- plot_ly()
p2 <- add_trace(p2, x = times, y = ys, type = "scattergl", mode = "lines",
line = list(width = 1, color = "blue"))

server <- function(input, output, session) {
# make plotly plot
output$plot1 <- renderPlotly({
g <- ggplot()+geom_point(aes(x=p1x,y=p1y))
ggplotly(g)
})
output$plot2 <- renderPlotly({
selpoint <- event_data("plotly_click")$pointNumber[1]+1
plot2xlim <- c(p1t[selpoint]-500,p1t[selpoint]+500)
p2 <<- layout(p2, xaxis = list(range = plot2xlim),
yaxis = list(range = c(0, 1)))
p2
})
}
shinyApp(ui, server)

但是代码运行非常非常慢,因为 plot2 是为大量数据构建的。所以重建它需要很多时间。

有没有办法不在每次点击时重绘第二个图,而只是改变它的 x 限制?

最佳答案

似乎没有办法解决这个问题,因为图表中的每个更改/查询都意味着图表的重新渲染,自从每次点击数据点时 Shiny 都会向第二个图表发送新数据第一张图。

关于r - 在 R 中单击另一个绘图更改绘图的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52167803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com