我想把一个长长的传说分成两列,但我没有取得任何成功.这是我在其他地方找到的解决方案使用的代码geom='area',虽然它适用于我的其他绘图.我从下面的代码得到的情节如下:
那么如何Q1用两列中的图例进行绘图呢?
NVER <- 10
NGRID <- 20
MAT <- matrix(NA, nrow=NVER, ncol=NGRID)
gsd <- 0.1 # standard deviation of the Gaussians
verlocs <- seq(from=0, to=1, length.out=NVER)
thegrid <- seq(from=0, to=1, length.out=NGRID)
# create a mixture of Gaussians with modes spaced evenly on 0 to 1
# i.e. the first mode is at 0 and the last mode is at 1
for (i in 1:NVER) {
# add the shape of gaussian i
MAT[i,] <- dnorm(thegrid, verlocs[[i]], sd=gsd)
}
M2 <- MAT/rowSums(MAT)
colnames(M2) <- as.character(thegrid)
# rownames(M2) <- as.character(verlocs)
library(reshape2)
D2 <- melt(M2)
# head(D2)
# str(D2)
D2$Var1 <- ordered(D2$Var1)
library(ggplot2)
Q1 <- qplot(Var2, value, data=D2, order=Var1, fill=Var1, geom='area')
Q1
# ggsave('sillyrainbow.png')
# now try the stackoverflow guide() solution
Q1 + guides(col=guide_legend(ncol=2)) # try but fail to put the legend in two columns!
Run Code Online (Sandbox Code Playgroud)
请注意,在R代码中使用ggplot时在图例列表中创建列的解决方案已在上面合并,但不幸的是它不起作用!
Rol*_*and 16
你指的是错误的指南.
Q1 + guides(fill=guide_legend(ncol=2))
Run Code Online (Sandbox Code Playgroud)
