自从 David Robinson 发布了他的 gganimate 包并认为我自己会玩一出之后,我一直在羡慕和钦佩出现在 twitter 上的各种 ggplot 动画。我在使用 geom_bar 时遇到了 gganimate 的问题。希望下面的例子能说明问题。
首先为可重现的示例生成一些数据:
df <- data.frame(x = c(1, 2, 1, 2),
y = c(1, 2, 3, 4),
z = c("A", "A", "B", "B"))
为了演示我正在尝试做的事情,我认为绘制一个普通的 ggplot 会很有用,由z
. 我试图让 gganimate 生成一个在这两个图之间循环的 gif。
ggplot(df, aes(x = x, y = y)) +
geom_bar(stat = "Identity") +
facet_grid(~z)
但是当我使用 gganimate 时,B 的情节表现得很奇怪。在第二帧中,条形图从第一帧的条形图结束的值开始,而不是从原点开始。就好像它是一个堆叠的条形图。
p <- ggplot(df, aes(x = x, y = y, frame = z)) +
geom_bar(stat = "Identity")
gg_animate(p)
顺便说一句,当尝试相同的情节时,geom_point
一切都按预期工作。
q <- ggplot(df, aes(x = x, y = y, frame = z)) +
geom_point()
gg_animate(q)
我试图发布一些图片,但显然我没有足够的声誉,所以我希望没有它们是有意义的。这是一个错误,还是我错过了什么?
提前致谢,
托马斯