R ggplot2:周围有框和标签的多个打印
我正在尝试创建一个绘图网格,周围应该有一个方框,一个类似棋盘的标签(即顶部/底部的字母,侧面的数字),以及一条分隔网格两部分的垂直线 我希望使用刻面来完成(或类似的事情),但刻面网格不会创建横向标签(如),当给出大量绘图时,似乎:R ggplot2:周围有框和标签的多个打印,r,plot,ggplot2,facet,facet-wrap,R,Plot,Ggplot2,Facet,Facet Wrap,我正在尝试创建一个绘图网格,周围应该有一个方框,一个类似棋盘的标签(即顶部/底部的字母,侧面的数字),以及一条分隔网格两部分的垂直线 我希望使用刻面来完成(或类似的事情),但刻面网格不会创建横向标签(如),当给出大量绘图时,似乎: testdata <- cbind("ID"=c(rep(1:24, each=10)), "TT"=c(rep(0:1, each=5)), "RD"=c(seq(1:5)),
testdata <- cbind("ID"=c(rep(1:24, each=10)),
"TT"=c(rep(0:1, each=5)),
"RD"=c(seq(1:5)),
"DV"=rnorm(240, 10, 5))
testdata <- data.frame(testdata)
testplot <- ggplot(data=testdata, aes(x=RD, y=DV)) +
geom_line(colour="black") + geom_point() +
facet_wrap(TT ~ ID, ncol=4)
testdata让我的评论更清晰
我建议创建一个如下所示的数据框:
ID TT RD DV ColumnLetter RowNumber
1 0 1 12.4734172 A 1
1 0 2 7.1034136 B 2
1 0 3 3.0688039 C 3
1 0 4 -2.4502442 D 4
然后使用
face_grid(RowNumber~ColumnLetter)
按您的要求格式化。这似乎非常接近
set.seed(1) # for reproducible example
testdata <- data.frame(ID=rep(LETTERS[1:4], each=60),
TT=rep(1:6, each=10),
grp=rep(0:1,each=5),
RD=seq(1:5),
DV=rnorm(240, 10, 5))
library(ggplot2)
library(gridExtra)
ggp <- ggplot(data=testdata, aes(x=RD, y=DV, group=grp)) +
geom_line(colour="black") + geom_point() +
facet_grid(TT ~ ID)+
theme(strip.background=element_rect(fill=NA),
strip.text=element_text(color="red",face="bold",size=15),
strip.text.y=element_text(angle=0))
grid.newpage()
grid.draw(arrangeGrob(ggp))
grid.rect(x=0.51,y=0.5,width=0.007,height=0.8,gp=gpar(col=NA,fill="red"))
set.seed(1)#用于可复制的示例
testdata您可以通过添加theme_bw()将每个图形框出。我不确定你到底想要什么。是否要使用镶嵌面环绕或镶嵌面网格。我知道你想在中间画一条垂直线,但是除了这条线,最终的图应该怎么显示呢?还有,你想用的字母是从哪里来的?您的数据框中不应该有一列包含它们吗?我重新阅读,发现您希望最后一个图形作为输出。最简单的方法是添加一列,其中包含要表示与相关图关联的每一列的字母a-D。这样,facet_grid将为您实现自动化,如您的第一个示例所示,图右侧的标签为1-24(?)。+1表示解释良好的问题和清晰的代码。