R-geom_point-用于图例的分组

时间:2018-08-17 22:03:48

标签: r ggplot2 grouping legend

我有两个geom_point命令应用于不同的数据帧,并且希望有一个图例来指定它们。但是,我不确定如何将它们归类为图例。如果您可以看一下下面的简单示例并帮助我弄清楚为什么图中没有出现图例,我将不胜感激。谢谢!

df1=data.table(x1=c(-1,0,1), y1=c(-1,0,1))
df2=data.table(x2=c(-1,0,1), y2=c(-2,0,2))
ggplot()+
geom_point(data=df1, aes(x=x1, y=y1), color='red',  group=1) +
geom_point(data=df2, aes(x=x2, y=y2), color='blue', group=2) +
xlab("X Label")+ylab("Y Label") +
scale_colour_manual(name = "My Legend", 
                 values = group,
                 labels = c("database1", "database2"))

1 个答案:

答案 0 :(得分:1)

如建议的那样,ggplot2喜欢一种“整洁”的数据处理方式。在这种情况下,它涉及将数据与其他变量组合以区分组:

colnames(df2) <- c("x1","y1")
df <- rbind(transform(df1, grp='red'), transform(df2, grp='blue'))

ggplot()+
geom_point(data=df, aes(x=x1, y=y1, color=grp),  group=1) +
xlab("X Label")+ylab("Y Label") +
scale_color_identity(guide="legend")

为简单起见,我在这里使用了scale_color_identity,但是从scale_colour_manual开始并重新标记它们的地方并不难。

enter image description here