我在dplyr中生成了一个分组数据框,其中每个组反映了因子变量级别的唯一组合。我想使用与this帖子类似的代码来绘制不同的群组。但是,我无法弄清楚如何在我的情节标题中包含两个(或更多)变量,这是一个麻烦,因为我有一堆不同的组合。
虚假数据和绘图代码:
library(dplyr)
library(ggplot2)
spiris<-iris
spiris$site<-as.factor(rep(c("A","B","C")))
spiris$year<-as.factor(rep(2012:2016))
spiris$treatment<-as.factor(rep(1:2))
g<-spiris %>%
group_by(site, Species) %>%
do(plots=ggplot(data=.) +
aes(x=Petal.Width)+geom_histogram()+
facet_grid(treatment~year))
##Need code for title here
g[[3]] ##view plots
我需要每个情节的标题来反映&#34;网站&#34;和&#34;物种&#34;。有什么想法吗?
答案 0 :(得分:3)
使用split() %>% purrr::map2()
代替group_by() %>% do()
,如下所示:
spiris %>%
split(list(.$site, .$Species)) %>%
purrr::map2(.y = names(.),
~ ggplot(data=., aes(x=Petal.Width)) +
geom_histogram()+
facet_grid(treatment~year) +
labs(title = .y) )
答案 1 :(得分:1)
您只需要使用ggtitle()
设置标题:
g <- spiris %>% group_by(site, Species) %>% do(plots = ggplot(data = .) +
aes(x = Petal.Width) + geom_histogram() + facet_grid(treatment ~
year) + ggtitle(paste(.$Species,.$site,sep=" - ")))