Мой вопрос тесно связан с R: Custom Legend for Multiple Layer ggplot, а также с Format legend for multiple layers ggplot2 именно: Я хочу создать пользовательские легенды для многослойного сюжета. Однако есть небольшая разница: В исходных вопросах желаемый эффект заключался в том, чтобы отделить два разных метода группировки: fill
и color
, и именно поэтому можно было использовать две различные функции scale_XXX
. В моем случае я создаю график , который содержит точки (один слой) и линии (второй слой). Оба слоя различаются по цвету:Контроль над легендами многослойного участка в ggplot2
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)
Вот результат:
То, что я хочу, чтобы отделить легенды для точек и линий, так что легенда выглядит следующим образом:
Я не мог найти способ принять подход цитируемых вопросы к моей ситуации , Есть идеи?
Вы можете взглянуть на [этот пост и комментарии в нем] (http://stackoverflow.com/questions/17642190/how-to-set-multiple-legends-for-the-same-aesthetic-in-ggplot2), например «ggplot2 по дизайну не допустит нескольких легенд для одной и той же эстетики». Таким образом, решения, вероятно, будут хакерскими. – Henrik