ggplot2:使用stat_smooth时无法覆盖第二个传奇美学

时间:2015-08-29 15:37:41

标签: r ggplot2

南瓜头盔(3.1.2),ggplot2_1.0.0。

library(ggplot2)
some_diamonds <- subset(diamonds, color %in% c('D', 'E', 'F'))
g <- ggplot(some_diamonds, aes(carat, depth, linetype=cut, colour=color)) +
    stat_smooth(se=F) + scale_colour_grey()

color的图例中正确显示了所需的色彩美感(最重要的是,在情节本身中),但cut的颜色默认为stat_smooth&#39;默认(蓝色)。在这种情况下,usual tricks似乎不起作用,例如:

g <- ggplot(some_diamonds, aes(carat, depth, linetype=cut, colour=color)) + 
   stat_smooth(se=F) 
g + scale_colour_grey() + guides(colour = guide_legend(override.aes = 
   list(colour='black')

事实上,我甚至不确定如何访问第二个图例的任何元素。此

g + scale_colour_grey(guide=guide_legend(title="Title", order=2)) 

只需将第一个图例的标题更改为&#34;标题&#34 ;;类似地,

g + scale_colour_grey() + 
  guides(colour=guide_legend(override.aes=list(colour='black'), order=2))

覆盖cut但不覆盖color,无论order的值是什么(或者甚至省略)。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

你已经非常接近了!这里有什么帮助,只需将guides()中参数的名称更改为您尝试更改的功能的名称,即linetype

g + guides(linetype = guide_legend(title = "Variable: cut",  # changes the second legend
                                   override.aes = list(colour = "black")), 
           color = guide_legend(title = "Variable: color"))  # changes the first legend

plot with changed legend's color