【发布时间】:2020-03-11 20:26:00
【问题描述】:
我有一个数据框,每个月都有观察结果。我想每个月创建一个观察结果的 gif 图像。然而,在 gganimate 中,帧是按字母顺序排列的(例如,从四月开始而不是一月)。如何更改帧的顺序?
或者,我可以使用月份数来使绘图正确运行。但是,在这种情况下,我必须将框架标题更改为一月、二月、三月等,而不是 1、2、3 ...我意识到 this response 可以解决问题,但它仍然不能回答是否或者是否有可能以某种方式指定 gganimate 中的帧顺序。
monthly.data <- data.frame(month = rep(c("January", "February", "March", "April", "May","June", "July", "August", "September", "October", "November", "December"), 10), xval = rnorm(n = 120,10,3), yval=rnorm(120,10,3))
# This plots it in alphabetical order
ggplot(monthly.data, aes(x = xval, y = yval))+
geom_point()+
transition_states(month)+
ggtitle("{closest_state}")
# Ordering the dataframe correctly doesn't help
mothly.data <- arrange(monthly.data, factor(month, levels = c("January", "February", "March", "April", "May","June", "July", "August", "September", "October", "November", "December")))
ggplot(monthly.data, aes(x = xval, y = yval))+
geom_point()+
transition_states(month)+
ggtitle("{closest_state}")
【问题讨论】:
-
monthly.data$month = factor(monthly.data$month, levels = month.name),使用内置的month.name向量,该向量具有正确的月份顺序。行的顺序无关紧要。因子水平的顺序很重要。