我想制作嵌套组(组和子组)的 xy 图,其中点按组着色并按子组形状。一个最小的例子如下:
DATA<-data.frame(
Group=c(rep("group1",10),rep("group2",10),rep("group3",10) ),
Subgroup = c(rep(c("1.1","1.2"),5), rep(c("2.1","2.2"),5), rep(c("3.1","3.2"),5)),
x=c(rnorm(10, mean=5),rnorm(10, mean=10),rnorm(10, mean=15)),
y=c(rnorm(10, mean=3),rnorm(10, mean=4),rnorm(10, mean=5))
)
ggplot(DATA, aes(x=x, y=y,colour=Group, shape=Subgroup) ) +
geom_point(size=3)
Run Code Online (Sandbox Code Playgroud)
然而,因为实际上我有更多的子组,无法根据可用形状轻松识别,所以我想在每个组中重复相同的形状。下面是相同的代码,但有一个附加列(形状)指定形状:
DATA<-data.frame(
Group=c(rep("group1",10),rep("group2",10),rep("group3",10) ),
Subgroup = c(rep(c("1.1","1.2"),5), rep(c("2.1","2.2"),5), rep(c("3.1","3.2"),5)),
Shape = as.character(c(rep(c(1,2),15) ) ),
x=c(rnorm(10, mean=5),rnorm(10, mean=10),rnorm(10, mean=15)),
y=c(rnorm(10, mean=3),rnorm(10, mean=4),rnorm(10, mean=5))
)
ggplot(DATA, aes(x=x, y=y,colour=Group, shape=Shape) ) +
geom_point(size=3)
Run Code Online (Sandbox Code Playgroud)
现在形状和颜色都是我想要的。但是,图例不再列出子组。我想要的是一个图例,列出每个相应组下的所有子组。就像是:
(理想情况下,这将是一个嵌套图例。如果嵌套图例不可能,也许它们可以是三个单独的图例,以组作为标题)
这是可以实现的吗?如何实现?
谢谢