我的问题与R:Custom Legend for Multiple Layer ggplot和Format legend for multiple layers ggplot2密切相关,即我想为多层绘图创建自定义图例。但是,有一个微妙的差异:
在原始问题中,期望的效果是从两种不同的分组方法:fill
和color
中分离出来,因此可以使用两个不同的scale_XXX
函数。在我的情况下,我创建了一个包含点(一层)和线(第二层)的图。这两个层通过颜色区分:
x <- seq(0, 10, .1)
y <- sin(x)
lbl <- ifelse(y > 0, 'positive', 'non-positive')
data.one <- data.frame(x=x, y=y, lbl=lbl)
data.two <- data.frame(x=c(0, 10, 0, 10), y=c(-0.5, -0.5, 0.5, 0.5), classification=c('low', 'low', 'high', 'high'))
plt <- ggplot(data.one) + geom_point(aes(x, y, color=lbl)) + scale_color_discrete(name='one', guide='legend')
plt <- plt + geom_line(data=data.two, aes(x, y, color=classification)) + scale_color_discrete(name='two', guide='legend')
print(plt)
这是结果:
我想要的是将点和线的图例分开,使图例看起来像这样:
我找不到一种方法来适应引用问题的方法。有什么想法吗?