gpt4 book ai didi

r - 使用 plotly 跨动画帧的恒定热图

转载 作者:行者123 更新时间:2023-12-04 08:19:06 24 4
gpt4 key购买 nike

我想创建一个动画图形,其中热图作为“背景”。也就是说,我希望热图在整个帧中保持不变。
到目前为止,这是我的代码:

library(plotly)
library(dplyr)

df1 <- data.frame(f = rep(1:5, c(rep(50, 5))),
x = round(runif(250, 10,100),0),
y = round(runif(250, 10,100),0))


df2 <- expand.grid(x=seq(0,100,10), y=seq(0,100,10))
df2$col[df2$x>50] = "green"
df2$col[df2$x<=50] = "red"
df2$col[df2$x<=20] = "blue"



plot_ly() %>%
plotly::add_markers(data = df1, y = ~y,x = ~x,frame=~f)%>%
plotly::add_heatmap(data = df2,
x = ~x,
y = ~y,
z = as.numeric(factor(df2$col, ordered = T, levels = unique(df2$col))),
xgap = 0.5,
ygap = 0.5)

生产:
enter image description here
我可以创建 map ,并且在第 1 帧上一切正常。但是,当我向前移动一帧时,热图消失了。有没有人对此有解决方案?
顺便说一下, ggplotly 不是一个选项,因为 plotly 和 heatmap 的组合太慢了。

最佳答案

您是否尝试过重复 df2对象按帧数?尽管重新构建热图会导致帧之间出现明显延迟,但以下是一个潜在的解决方案:

# repeat df2 five times
df2 = do.call("rbind", replicate(5, df2, simplify = FALSE))
df2$f = rep(1:5, each = nrow(df2)/5)

plot_ly() %>%
plotly::add_markers(data = df1, y = ~y,x = ~x,frame=~f)%>%
plotly::add_heatmap(data = df2,
x = ~x,
y = ~y,
frame=~f,
z = as.numeric(factor(df2$col, ordered = T, levels = unique(df2$col))),
xgap = 0.5,
ygap = 0.5)

关于r - 使用 plotly 跨动画帧的恒定热图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65583368/

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