Как использовать собственное изображение для geom_point в gganimate? - PullRequest
6 голосов
/ 17 октября 2019

Я пытаюсь использовать свое собственное изображение для geom_point, что я могу просто прочитать. Я знаю, что geom_point позволяет вам выбирать различные фигуры (более 300), просто написав shape = 243, но я хочу, чтобы мое собственное изображение, такое каклоготип.

Когда я не указал color = factor (Name), он работает как положено. Когда я указываю цвет линии, изображение становится сплошным. Я хочу, чтобы эта линия была цветной, так есть ли способ обойти это? Спасибо!

library(gganimate)
library(gifski)
library(png)
library(ggimage)


Step  <- 1:50
Name  <- rep("A",50)
Image <- rep(c("https://jeroenooms.github.io/images/frink.png"),50)
Value <- runif(50,0,10)
Final <- data.frame(Step, Name, Value, Image)

a <- ggplot(Final, aes(x = Step, y = Value, group = Name, color = factor(Name))) + 
  geom_line(size=1) + 
  geom_image(aes(image=Image)) +
  transition_reveal(Step) + 
  coord_cartesian(clip = 'off') + 
  theme_minimal() +
  theme(plot.margin = margin(5.5, 40, 5.5, 5.5)) +
  theme(legend.position = "none") 

options(gganimate.dev_args = list(width = 7, height = 6, units = 'in', res=100))
animate(a, nframes = 100)

Replacing geom_point with uploaded image

1 Ответ

1 голос
/ 18 октября 2019

Это то, что вы ищете?

I Просто изменил позицию color = factor(Name) на оператор geom_line.

Если вы используете color = factor(Name) с ggplot в первом ряду, это повлияет на весь сюжет. Поэтому вы должны быть осторожны при использовании этого утверждения.

a <- ggplot(Final, aes(x = Step, y = Value, group = Name)) + 
  geom_line(size=1, aes(color = factor(Name))) + 
  geom_image(aes(image=Image)) +
  transition_reveal(Step) + 
  coord_cartesian(clip = 'off') + 
  theme_minimal() +
  theme(plot.margin = margin(5.5, 40, 5.5, 5.5)) +
  theme(legend.position = "none") 

Для удобства я сделал снимок.

enter image description here

...