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