我想在数据框中为每个组创建一个单独的图并在标题中包含该组。每组使用ggplot函数与dplyr并为每个组设置标题
随着虹膜数据集,我可以在基础R和ggplot做到这一点
plots1 <- lapply(split(iris, iris$Species),
function(x)
ggplot(x, aes(x=Petal.Width, y=Petal.Length)) +
geom_point() +
ggtitle(x$Species[1]))
是否有一个相当于使用dplyr?
这是一个尝试使用facets而不是标题。
p <- ggplot(data=iris, aes(x=Petal.Width, y=Petal.Length)) + geom_point()
plots2 = iris %>% group_by(Species) %>% do(plots = p %+% . + facet_wrap(~Species))
其中我使用%+%将p中的数据集替换为每个调用的子集。
或ggtitle(工作,但复杂的)
plots3 = iris %>%
group_by(Species) %>%
do(
plots = ggplot(data=.) +
geom_point(aes(x=Petal.Width, y=Petal.Length)) +
ggtitle(. %>% select(Species) %>% mutate(Species=as.character(Species)) %>% head(1) %>% as.character()))
的问题是,我似乎无法设置每个组的冠军ggtitle在一个非常简单的办法。
谢谢!
我更倾向于解决通过自定义功能的这个问题,我使用'种[1]'指定标题。但如果你的实际情节是这么简单,这当然有效。 IE - 我的工作流程往往是'plot.cust < - function(...);虹膜%>%group_by(物种)%>%plot.cust(...)' – 2015-03-13 14:47:21
非常简单的解决方案,没有发生在我身上!谢谢! – bytesinflight 2015-03-13 14:48:47
@詹姆斯'独特'可能是昂贵的,不是吗? – 2015-03-13 15:03:00