我正试图从最近的比赛中获得游泳队的一些数据。
动画图在这里: https://imgur.com/aoNs1HC
(1) 为了改善外观,我插入了背景图像。但是,此背景图像以某种方式覆盖了原始动画。您可以在下面的动画中看到它。该背景图像已经具有70%的不透明度,但是我仍然看不到动画线。
(2) 我还尝试以动画方式更改线条的颜色来为线条着色设置动画。表示该行在6.5以下时为红色,而在6.5以上时变为绿色 可能吗?
对于(1),我尝试更改背景图片的不透明度,但没有成功
对于(2),我试图将其添加到
geom_line() +
scale_colour_gradient(low="coral", high="steelblue") +
但是什么也没发生(也没有错误消息)
完整代码:
library(ggplot2)
library(gganimate)
library(png)
data <- tibble::tribble(~Heat, ~Performance,
8.1, 5.6,
8.2, 5.9,
8.3, 5.5,
8.4, 6.2,
8.5, 6.8,
8.6, 7.2,
8.7, 7.6,
)
url <- "https://i.imgur.com/mREnnlF.png"
download.file(url, destfile = "background_image.png")
background_image <-readPNG("background_image.png")
p <- ggplot(data, aes(Heat, Performance)) +
geom_line(color='coral', size = 1) +
geom_point(color= "steelblue", size = 3) +
background_image(background_image) +
transition_reveal(Heat) +
ease_aes('cubic-in-out')
animate(p, fps = 10, end_pause=10, width = 800, height = 400)
(a) 我希望使动画清晰地显示在前面
(b) 线条颜色的变化可以是从起始颜色到下一个颜色的突然变化,也可以是平滑的动画过渡。两者都很好。
(c) 另外-如果可能的话-我想摆脱y轴描述,而是在动画中显示数据点的值,该行到达每个数据点。因此,在动画结束时,将在相应的数据点处显示该行以及相应的值。
任何人如能解决此问题,请提前提供任何帮助! 最好的汤姆