我正在尝试使用ggplot
和(可能)plot_ly
制作动画热图。到目前为止,我能够实现两个部分目标:
1)我可以使用plot_ly
制作动画散点图:
dd <- data.frame(f = rep(1:5, c(rep(50, 5))),
x = round(runif(250, 10,100),0),
y = round(runif(250, 10,100),0),
id = rep(1:50,5))
p <- dd %>%
plot_ly(
x = ~x,
y = ~y,
frame = ~f,
type = 'scatter',
mode = 'markers',
showlegend = F
)
p
但是,对于scatter
,绘图无法传达有关帧内或帧间重复元素的信息。 (到目前为止,我无法通过选项plot_ly
使heatmap
正常工作。)
2)我可以使用ggplot
和stat_bin2d
为每个步骤生成热图。
dd.wide <- reshape(dd, direction="wide", timevar = "f")
for (i in seq(2,length(names(dd.wide)),2)){
p <- ggplot(dd.wide, aes_(x=as.name(names(dd.wide)[i]),y=as.name(names(dd.wide)[i+1]))) +
stat_bin2d() +
xlim(10,100) +
ylim(10,100) +
guides(fill = guide_colorbar(barwidth = 1, barheight = 5)) +
scale_fill_gradientn(colours=rev(heat.colors(10)))
print(p)
}
对于第二种方法,我没有找到一种简单的方法将这些静态图转换为漂亮的动画(我可以制作快照电影,但我希望图像之间的过渡更为顺畅。)
我也尝试使用ggplotly()
,但无法使其正常工作。
对于如何使热图如plot_ly
中的散点图那样进行更改,我将不胜感激(我可以使用不同的动画包)。
更新我无法在网站上使用动画散点图,因此我用该点的快照替换了动画。