У меня есть сюжет в ggplot2 с, скажем, 2 строками, и в легенде у меня есть "Акулы" и "Тигры". Есть ли способ, которым в легенде могут появляться изображения акулы/тигра вместо этого текста?
Использовать изображение вместо меток в легенде ggplot2
Ответ 1
Вам гораздо лучше использовать ggsave
, чтобы сохранить фигуру как eps
или svg
, а затем открыть ее в Illustrator (или эквивалент с открытым исходным кодом) и заменить легенду изображениями. Если вы действительно мертвы, выполнив все это в R, вы можете использовать annotation_raster
в текущем ggplot2
и добавить рядом текст рядом с ним с помощью geom_text
. Вот грубая попытка:
set.seed(10)
library(ggplot2)
library(RCurl)
library(png)
df <- data.frame(animal = sample(c("sharks", "tigers"),20, rep=T), time=1:20,
scariness = rnorm(20)*-20)
shark <- readPNG(getURLContent("http://i.imgur.com/EOc2V.png"))
tiger <- readPNG(getURLContent("http://i.imgur.com/zjIh5.png"))
ggplot(df, aes(time, scariness, group = animal, color = animal)) +
geom_line(show_guide = FALSE) +
annotation_raster(tiger, xmin = nrow(df)-1, xmax = nrow(df),
ymin = max(df$scariness)-(.05*max(df$scariness)),
ymax = max(df$scariness), interpolate = T) +
annotation_raster(shark, xmin = nrow(df)-1, xmax = nrow(df),
ymin = max(df$scariness)-(.1*max(df$scariness)),
ymax = max(df$scariness)-(.05*max(df$scariness)), interpolate = T)