【发布时间】:2019-07-04 03:10:12
【问题描述】:
我想用 gganimate 包创建一个动画条形图。在每个条的顶部,我想将条的值四舍五入到零位。
考虑以下示例:
# Example data
df <- data.frame(ordering = c(rep(1:3, 2), 3:1, rep(1:3, 2)),
year = factor(sort(rep(2001:2005, 3))),
value = round(runif(15, 0, 100)),
group = rep(letters[1:3], 5))
# Create animated ggplot
ggp <- ggplot(df, aes(x = ordering, y = value)) +
geom_bar(stat = "identity", aes(fill = group)) +
transition_states(year, transition_length = 2, state_length = 0) +
geom_text(y = df$value, label = as.integer(round(df$value)))
ggp
不幸的是,我没有设法正确地舍入这些值。有没有办法在过渡期间对值进行舍入?
【问题讨论】:
-
round(runif(15, 0, 100),0)? 不确定 -
@NelsonGon 不幸的是,这不起作用。
-
stackoverflow.com/questions/53055118/… 我认为目前没有其他选择,但您可以轻松适应这个问题的“手动”解决方案。
-
@Freguglia 感谢您的回复!另一个线程中提供的手动解决方案的问题是会缩短条形水平过渡的持续时间。在建议的线程中没有水平过渡,因此该解决方案适用于另一个线程的条形图,但不适用于我的。您知道如何保持水平过渡持续时间吗?
标签: r ggplot2 bar-chart rounding gganimate