0
請考慮下列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'圖例:'guides(color = guide_legend(ncol = 2,nrow = 2,byrow = TRUE))'。然而,當我運行你的代碼時,'nls'模型的'stat_smooth'失敗,所以創建了圖例第二行的空間,但實際上並沒有爲'nls'模型渲染圖例框。 – eipi10
@ eipi10這真的有用;謝謝,但是如果我有一個奇數的鍵,並且我希望圖例的每一行水平居中對齊。這可能嗎? – user8420488483439