在不更改图形参数的情况下更改ggplot2图例标题

时间:2013-02-24 19:31:17

标签: r graphics ggplot2

我在ggplot2上找到了很多关于传说标题的话题,但几个小时后我就无法处理我的情况。

这是数据集:

> dat
  FACTOR1 FACTOR2 lsmean lower.CL upper.CL
1       A      aa   26.2     25.6     26.8
2       B      aa   24.8     23.9     25.7
3       A      bb   26.0     25.2     26.7
4       B      bb   24.9     23.9     25.9
5       A      cc   24.4     23.9     24.8
6       B      cc   23.9     22.9     25.0
7       A      dd   24.9     24.3     25.6
8       B      dd   23.2     22.3     24.0

感兴趣的图形:

gp0 <- ggplot(dat, aes(x=FACTOR2, y=lsmean, group=FACTOR1, colour=FACTOR1)) 
( gp1 <- gp0 +  geom_line(aes(linetype=FACTOR1), size=.6) + 
    geom_point(aes(shape=FACTOR1), size=3) + 
    geom_errorbar(aes(ymax=upper.CL, ymin=lower.CL), width=.1) +
    geom_errorbar(aes(ymax=upper.CL, ymin=lower.CL), width=.1) ) 

gp1

如果我使用scale_colour_manual()来更改图例标题,那么我会收到一个意想不到的额外图例:

gp1 + scale_colour_manual("NEW TITLE",values=c("red","blue"))

gp1+

我用scale_"aes"_manual("guide=none", values=...)抑制了这个额外的图例,但我不明白如何控制参数(点和线的样式):

gp1 + scale_colour_manual("NEW TITLE",values=c("red","blue")) +
    scale_shape_manual(guide = 'none', values=c(1,2))   + 
    scale_linetype_manual(guide = 'none', values=c(1,3))  

gp1++

请如何使用和仅使用新的图例标题重现第一个情节?

1 个答案:

答案 0 :(得分:4)

您必须为您使用的所有aes()属性设置相同的标题,例如,使用函数labs()

gp1 + scale_colour_manual(values=c("red","blue"))+
    labs(colour="NEW TITLE",linetype="NEW TITLE",shape="NEW TITLE")