当x轴是日期时将图像插入ggplot + gganimate

时间:2018-11-26 10:42:03

标签: r ggplot2 gganimate

我想使用gganimate为某些数据设置动画。以他们的github页面为例,我对其进行了一些更改以反映我的情况。 X轴是日期,我希望所有框架的徽标都位于同一位置。

可复制的代码:

library(magick)
library(gapminder)
library(ggplot2)
library(rsvg)
library(gganimate)

tiger <- image_read_svg('http://jeroen.github.io/images/tiger.svg', width = 400)

(p <- ggplot(gapminder, aes(year, lifeExp, size = pop, colour = country)) +
  geom_point(alpha = 0.7, show.legend = FALSE) +
  scale_colour_manual(values = country_colors) +
  scale_size(range = c(2, 12)) +
  scale_x_log10() +
  annotation_raster(tiger, ymin = 75, ymax = 100, xmin = 1965, xmax = 2005) )

# here the animate part (not needed just for ilustrative purposes)

p + labs(title = 'Year: {frame_time}', x = 'Year', y = 'life expectancy') +
  transition_time(year) +
  ease_aes('linear')

问题是,当x轴不是日期时,我可以在任何图表中绘制徽标。

我怀疑此问题与日期类型有关,但到目前为止没有成功。

1 个答案:

答案 0 :(得分:3)

您的问题似乎与您要求x轴的对数刻度有关。它使用您的年向量(不是日期,而是一个4位整数),并对其应用对数转换...正如@camille指出的,这意味着您在调用case 3: //Cash Withdrawal printf("You are about to withdraw cash from an account.\n \n"); withdrawnAmount = withdrawal(balance); //Calling function to withdraw money from existing account if(withdrawnAmount > 0) balance -= withdrawnAmount; else printf("-1"); printf("Your new account balance is $%d\n\n", balance); break; 时的坐标( xmin / xmax)远离绘图网格。

这是一种通过将数据框中的年份更改为日期格式来合并日期的解决方案。它还将图像分层到几何图形后面,并按其原始比例进行渲染。 1x1。

animation_raster

哪个生产这个...

enter image description here

这是您要找的东西吗?