我在 ggplot2 中有一个情节,比如 2 行,在传说中我有“鲨鱼”和“老虎”。有没有办法让鲨鱼/老虎图像出现在图例中而不是文本中?
问问题
2623 次
1 回答
36
您最好使用ggsave
将图形保存为eps
or svg
,然后在 Illustrator(或开源等效项)中打开它并用图像替换图例。如果你真的不喜欢在 R 中做这一切,你可以annotation_raster
在 current中使用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)
于 2012-10-30T22:54:02.110 回答