Пожалуйста, рассмотрим следующий сценарий R (взятый и слегка измененный от here):ggplot2: Как добавить разрыв строки в горизонтальной легенды
require(ggplot2)
x <- 1:10
y <- jitter(x^2)
DF <- data.frame(x, y)
p <- ggplot(DF, aes(x = x, y = y)) + geom_point() +
stat_smooth(method = 'lm', aes(colour = 'linear')) +
stat_smooth(method = 'lm', formula = y ~ poly(x,2),
aes(colour = 'polynomial')) +
stat_smooth(method = 'nls', formula = y ~ a * log(x) +b,
aes(colour = 'logarithmic')) +
stat_smooth(method = 'nls', formula = y ~ a*exp(b *x),
aes(colour = 'Exponential')) +
theme(legend.position = "top")
p <- p + guides(guide_legend(ncol=2,nrow=2,byrow=TRUE))
p
Легенда отображается в верхней части участка. Я хочу разбить эту легенду на две строки с двумя клавишами в каждой строке. Это возможно?
Пожалуйста, обратите внимание, что, как вы видите, я уже пробовал
p+guides(guide_legend(ncol=2,nrow=2,byrow=TRUE))
, как было предложено here и here, но он не работает для меня. Это предложение в основном отображает данные и легенды линейных и полиномиальных моделей и полностью скрывает логарифмические и экспоненциальные модели.
Необходимо указать, какая легенда, в данном случае легенда 'colour':' guide (color = guide_legend (ncol = 2, nrow = 2, byrow = TRUE)) '. Тем не менее, когда я запускаю ваш код, 'stat_smooth' терпит неудачу для моделей' nls', поэтому создается пространство для второй строки легенды, но для моделей 'nls' фактически не отображаются поля легенды. – eipi10
@ eipi10 это действительно работает; спасибо, но что, если у меня есть нечетное количество ключей, и я хочу, чтобы каждая строка легенды была выровнена по центру горизонтально. Это возможно? – user8420488483439