我尝试使用数据框复制动态图:
library(tidyverse)
library(gganimate) #may need: devtools::install_github("dgrtwo/gganimate")
library(animation)
df <- data.table::fread(
"Type Place Year Month1 Month2 Units Valor
Segment1 City1 Year1 1 1 192345 1020
Segment2 City2 Year2 2 14 284590 1597
Segment3 City3 Year1 3 3 186435 3478
Segment4 City4 Year3 4 28 269056 1259"
)
ggplot(data = df, aes(x = factor(Year), y = Valor, group = Type, colour = Type)) +
geom_line(size = 1, show.legend = F) +
scale_color_manual(values = c("#ff9933", "#006400", "#d11141", "#551A8B")) +
scale_x_discrete(position = "bottom") +
scale_y_continuous(labels = NULL)+
labs(
title = "NDF- SR",
x = "Time", y = "Sales"
) +
# geom_text(aes(label=scales::percent(Valor, accuracy = 1),
# vjust= -2), show.legend = FALSE) +
theme(plot.title = element_text(hjust = 0.5)) +
geom_dl(aes(label = value), method = "last.points") +
transition_reveal(Year) +
coord_cartesian(clip = "off") +
ease_aes("cubic-in-out")
animate(p, fps = 7, width = 900, height = 600)
anim_save("election.gif", p)
出现的错误是:
错误:数据沿途必须是整数,数字,POSIXct,日期,时差或orhms
另外:警告消息:
1:在min(cl [cl!= 0])中:没有min的必填参数;返回Inf
2:在min(cl [cl!= 0])中:没有min的必填参数;返回Inf
答案 0 :(得分:0)
一些建议:
library(directlabels)
或致电directlabels::geom_dl
。transition_reveal(readr::parse_number(Year)) +
,因为transition_reveal
需要输入数字,而Year
是字符数据,例如“ Year1”和“ Year2”。p <- ggplot(data = df...
,以便可以在下一步中对ggplot / gganimate对象进行动画处理。由于这似乎不是完整的数据,因此很难知道它是否有效。您通常不会在每个组仅使用一个数据点的情况下使用geom_line
。也许您可以在问题中描述更多您想要的东西,和/或添加更多数据。