R ggplot2:使用stat_smooth时无法覆盖第二个图例
南瓜头盔(3.1.2),ggplot2_1.0.0R ggplot2:使用stat_smooth时无法覆盖第二个图例,r,ggplot2,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() 事实上,我甚至不知道如何访问第二个
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()
事实上,我甚至不知道如何访问第二个图例的任何元素。这个
g + scale_colour_grey(guide=guide_legend(title="Title", order=2))
只需将第一个图例的标题更改为“标题”;同样地
g + scale_colour_grey() +
guides(colour=guide_legend(override.aes=list(colour='black'), order=2))
覆盖剪切
,但不覆盖颜色
,无论顺序
的值如何(或即使省略)
我错过了什么 你已经非常接近了!这里的帮助只是将
guides()
中的参数名称更改为您试图更改的功能的名称,即线型
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
d'oh!那很好。虽然我觉得逻辑有点模糊。无论如何,这似乎只会影响第一个图例:与g+scale\u color\u grey()+guides(color=guide\u legend(override.aes=list(linetype='虚线'))
相比,我不完全确定您在这里的意思(我不是母语人士),但我想您是对的:每个带有图例的功能在guides()中都有自己的参数。是的,这个表达似乎有点长,因为它带来了少量的变化。我想我想知道访问第二、第三个元素的更一般的策略是什么。。。传说是。例如,您将如何更改cut
的标题?也许这需要一个单独的问题?在这种特殊情况下,它不会以同样的方式工作吗cut
是变量的名称,但所讨论的功能是linetype
-g+导向(linetype=guide\u图例(title=“new title”,override.aes=list(color='black'))
。还是我误解了?包grid
、gridExtra
和其他包可以帮助更改核心级别的ggplot2
绘图(但我不确定您是否需要此绘图)。如果您认为它回答了您的问题,请随意接受我的帖子。
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