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

时间:2016-03-03 18:09:34

标签: r ggplot2 legend

我想使用下面的代码更改生成的图例的标题。注意,我知道我可以将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)

enter image description here

我不明白改变传奇标题的正确方法。我尝试了下面的代码,它给出了下面的情节,这不是我想要的 - 我只是想改变标题,而不是创造双重传说。由于我原来的传说既涉及形状和颜色,我也不确定如何更改这个"合并"标题。我该怎么办?

g + guides(color = guide_legend("dose (mg/kg)"))

enter image description here

1 个答案:

答案 0 :(得分:4)

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

g + guides(color = guide_legend("dose (mg/kg)"), 
           shape = guide_legend("dose (mg/kg)"))

您也可以使用guides(),而不是labs()

g + labs(color = "dose (mg/kg)", shape = "dose (mg/kg)")