将不同的因素映射到 R ggplot 中的图例标签

Mapping a different factor to the legend labels in R ggplot

我想在图例中提供更多信息。我想使用 ID 为每个图表赋予独特的颜色。但是我的图例标签我想包含来自一个因素的信息,该因素对于不同的 ID 可以相等,但对于一个 ID 始终不变。 示例:

mydata <- data.frame(x=rep(1:10,5),
y=rep((1:10),5)*sort(rep((10:14)/10,10)),
ID=sort(rep(1:5,10)),
info1=sort(rep(c("A","B","C","D","C"),10)),
info2=sort(rep(c("GG","HH","HH","GG","II"),10)))

ggplot(mydata,aes(x=x,y=y,color=as.factor(ID)))+geom_line()

这给了我应有的情节加上显示 ID 的图例。

现在我的问题是如何用 info1 中的因子替换 ID,同时为每个图形保持不同的颜色。更好的办法是在一个图例中包含来自 info1 和 info2 的信息...

我知道如何使用额外的隐形图来获得额外的图例,但这并不是我想要的:

ggplot(mydata,aes(x=x,y=y,color=as.factor(ID)))+geom_line() +
geom_point(aes(shape=NA,size=info1,fill=info2)) + guides(color=FALSE)

相反,我想要第一张图片中的图例,但第二张图片中的信息(标签)。当然,只是从data.frame中获取信息,并没有明确给出。

感谢您的建议

IDinfo1info2 粘合在一起并将其用作 ID 可行吗?

mydata$ID2 = paste(mydata$ID,paste(mydata$info1),paste(mydata$info2), sep='-')

ggplot(mydata,aes(x=x,y=y,color=as.factor(ID2)))+geom_line()