将不同的因素映射到 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中获取信息,并没有明确给出。
感谢您的建议
将 ID
、info1
和 info2
粘合在一起并将其用作 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()
我想在图例中提供更多信息。我想使用 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中获取信息,并没有明确给出。
感谢您的建议
将 ID
、info1
和 info2
粘合在一起并将其用作 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()