ggplot:设置具有多个属性的图例标题

And*_*ein 1 r legend ggplot2

我想更改使用下面的代码生成的图例的标题。请注意,我知道我可以将 data.frame 和美学直接放在 ggplot() 函数调用中,但在本示例中我没有这样做,因为在我的应用程序中,我需要具有不同数据集和美学的多个层。

d = data.frame(t=rep(1:10,2),
               value = rep(1:2,each=10),
               dose_mpk = factor(rep(1:2,each=10)))

g = ggplot() 
a = aes(x=t,y=value,group=dose_mpk,color=dose_mpk,shape=dose_mpk)
g = g + geom_point(data=d,a)
g = g + geom_line(data=d,a)
print(g)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我不明白更改图例标题的正确方法。我尝试了下面的代码,它给出了下面的图,这不是我想要的 - 我只是想更改标题,而不是创建双图例。由于我原来的图例既涉及形状又涉及颜色,因此我不确定如何更改此“组合”标题。我应该怎么办?

g + guides(color = guide_legend("dose (mg/kg)"))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Sti*_*ibu 5

如果图例的标题不同,则不能合并。只需将两个图例设置为相同的标题即可:

g + guides(color = guide_legend("dose (mg/kg)"), 
           shape = guide_legend("dose (mg/kg)"))
Run Code Online (Sandbox Code Playgroud)

除了 之外guides(),您还可以使用labs(),:

g + labs(color = "dose (mg/kg)", shape = "dose (mg/kg)")
Run Code Online (Sandbox Code Playgroud)