Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R ggplot2:周围有框和标签的多个打印_R_Plot_Ggplot2_Facet_Facet Wrap - Fatal编程技术网

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表示解释良好的问题和清晰的代码。