Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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
如何在ggplot中使用facet_wrap容纳多个绘图_R_Ggplot2 - Fatal编程技术网

如何在ggplot中使用facet_wrap容纳多个绘图

如何在ggplot中使用facet_wrap容纳多个绘图,r,ggplot2,R,Ggplot2,我能够用我的代码绘制一些以晶格格式绘制的绘图。然而,有几个这样的图,准确地说是77,所以每个图都是完全压扁和不可读的。我也尝试过宽度,高度,小平面,但是没有一个能给我想要的输出。每个图是每个受试者和EVTEST的直线图,共有77名受试者。 我想在4X3或4X4的多个面板以及页面中拆分绘图。我也用RTF输出它。如果可以的话,我也愿意以PDF格式输出。我该怎么做 下面是一个虚构的数据,它的格式与我在代码中用作输入的格式相同。我试图绘制的是这个纵向数据的线图,其中X轴是VISITDY_D,Y轴是EVS

我能够用我的代码绘制一些以晶格格式绘制的绘图。然而,有几个这样的图,准确地说是77,所以每个图都是完全压扁和不可读的。我也尝试过宽度,高度,小平面,但是没有一个能给我想要的输出。每个图是每个受试者和EVTEST的直线图,共有77名受试者。 我想在4X3或4X4的多个面板以及页面中拆分绘图。我也用RTF输出它。如果可以的话,我也愿意以PDF格式输出。我该怎么做

下面是一个虚构的数据,它的格式与我在代码中用作输入的格式相同。我试图绘制的是这个纵向数据的线图,其中X轴是VISITDY_D,Y轴是EVSTRESN。我通过创建一个连接句柄(subcid_EVTEST_SITE)对绘图进行分组

subcid站点EVTEST EVSTRESN VISITDY\u D侧
1 AB ABC 1.1 D00左
1 AB ABC 2.1 D28右侧
1 AB ABC 2.2 D56左
1 AB ABC 2.3 D84左
2 AB ABC 1.5 D00
2 AB ABC 1.6 D28右侧
#读取数据(csv文件)

唐尼,你看过这里吗?“我也试过使用宽度、高度、镶嵌面,但似乎没有一个能提供我想要的输出”,这意味着你有一些特别的想法。为了帮助人们更有效地回答你的问题,你能澄清一下你在寻找什么,或者你尝试过的方法有哪些不足之处吗?乔恩,谢谢你的评论。我在你共享的链接中尝试了代码。代码的输出正是我所需要的。但是我得到了一个错误:gList中的错误(
75_sleak\u Face
=list)grobs=list(list)(x=0.5,y=0.5,:“gList”中只允许“grobs”。我将感谢任何帮助来解决这个错误。你看了这里吗?“我也试过玩宽度、高度、小平面包裹分页,但似乎没有人能给我想要的输出。”这意味着你有一些特别的想法。为了帮助人们更有效地解决你的问题,你能澄清一下你在寻找什么,或者你尝试过的方法有哪些不足之处吗?Jon,谢谢你的评论。我在你共享的链接中尝试了代码。代码的输出正是我需要的。但是我得到了一个n错误:gList中出现错误(
75_sleak\u Face
=list)(grobs=list)(list)(x=0.5,y=0.5,:gList中只允许“grobs”。我将感谢您为解决此错误提供的任何帮助。
SUBJID  SITE    EVTEST  EVSTRESN VISITDY_D SIDE
1   AB  ABC 1.1 D00 Left
1   AB  ABC 2.1 D28 Right
1   AB  ABC 2.2 D56 Left
1   AB  ABC 2.3 D84 Left
2   AB  ABC 1.5 D00
2   AB  ABC 1.6 D28 Right


#read the data (csv file)
   donnees <- read.csv(paste0(path_data,"Sample.csv"), sep = ";",header = 
    T,stringsAsFactors = FALSE)
    Params = c("Phenotype1","Phenotype2")


#PLOTTING FUNCTION 
pf1<-function(subD,tit1){ # subD:Input data, tit1: Title for the plot

subD$SUBJID1 <- 
as.factor(paste0(subD$RANDOID,'_',subD$EVTEST,'_',subD$SITE))
p1 <- ggplot(subD,aes(x = VISITDY_D,y = EVSTRESN, color=SIDE,group=SIDE))    
geom_line(position=position_dodge(width=0.7))+
geom_point() + facet_wrap_paginate(~ SUBJID1, nrow=3,ncol=3,page=1) +
theme()
print(p1)


p1 <- ggplot(subD,aes(x = VISITDY_D,y = EVSTRESN, 
color=SIDE,group=SIDE)) +
geom_line(position=position_dodge(width=0.7))+
geom_point() + facet_wrap(~ SUBJID1) + theme()
print(p1)
}

# OUTPUT; Calling the plotting function in RTF 


oP <- /output_directory

   setwd(oP)

   rtf <- RTF(file = paste0("TEST_","individual profiles.rtf"))
   addTOC(rtf)
   addPageBreak(rtf)


 for(s in 1:length(Params)){

 dat = subset(donnees,donnees$EVTEST %in% Params[s])

 SUBJID1 <-as.factor(paste0(dat$RANDOID,'_',dat$EVTEST,'_',dat$SITE))

 tit1<-paste0(Params[s])
 addHeader(rtf,tit1,font.size = 4, TOC.level = 1)
 addPlot(rtf, plot.fun=pf1, subD= dat,tit1= tit1, width= 7, height=5.2, 
 res=250)
  }

done(rtf)