【发布时间】:2016-06-09 16:40:19
【问题描述】:
我有一个数据框,其中每一行都包含有关某个时间点 8 个点的坐标的信息:
时间 x1 y1 x2 y2 x3 y3 … x8 y8
例如,一行可能如下所示:
myData <- data.frame(time=0.1,x1=-7.79,y1=7.32,x2=-3.86,y2=-1.62,x3=-1.35,y3=-4.61,x4=-6.24,y4=-9.89,x5=-6.40,y5=2.00,x6=4.02,y6=4.77,x7=-1.42,y7=9.89,x8=6.59,y8=-8.02)
我遇到的问题是 ggplot 每个轴只接受 1 个列名。此外,我想使用 gganimate 为点的运动设置动画,这就是我想使用 ggplot 的原因。我该怎么做?
我设法通过使用标准 R plot() 方法为每个时间点绘制绘图并重新绘制它来为数据设置动画,但这不允许我保存动画或进一步使用它。
【问题讨论】:
-
你能做一个可重现的例子吗?查看this,我的方法是融合您的数据(可能必须使用 data.table 来做到这一点,因为它接受两个测量变量。然后您可以添加
frame = Time。 -
@Heroka 我在问题中添加了一个数据框示例。我真的无法添加更多代码,因为我不知道如何让 ggplot 做我想做的事。
-
ggplot 需要长格式的数据。第一步试试这个:
library(data.table);m_dat <- melt(setDT(myData), id.var="Time",measure.vars=patterns(c("x","y")), value.names=c("x","y")) -
Juraj - 请展示您的尝试。我建议像 Herka 那样融化你的数据框。在去 ggplot2 之前,我使用库 tidyr 和 dplyr。 blog.rstudio.org/2014/07/22/introducing-tidyr
-
谢谢@Heroka,你的方法奏效了:)