2017-02-19 6 views
1

BELOW 3 Rプロットを以下のマトリックス構造を使用して1つの画面に収めたいのですか?3つの異なるRプロットを1つの画面に含める

注:私はコードを記入しましたが、最良の方法は各プロットを実行して見た目を確認することです。ここで

は私のRコードです:

m2 <- matrix(c(0,2,2,2,2,  1,2,2,2,2,  1,2,2,2,2,  0,2,2,2,2 ), nrow=5, ncol=4) # matrix m2 

m3 <- matrix(c(0,2,2,2,2,0, 1,2,2,2,2,3, 1,2,2,2,2,3, 0,2,2,2,2,0), nrow=6, ncol=4) # matrix m3 

TL <- T ## NOW TRUE 

if(TL==T) {layout(m3)}else{layout(m2)} ## IF TL==T, split the screen according to *m3* 


## Plot # 1: ############################################### 
curve(dcauchy(x,0,1),-6,6,yaxt="n",bty="n",xaxs="i",xlab="GG",font.lab=2,lwd=2,col="cyan2",ylab = "") 


## Plot #2: ############################################### 
plot(1, 1, type = "n", xlim = c(0,1.5), ylim = c(.01, 3),log="y", bty="n", axes=F, xaxs="i", 
xlab = "GGG", ylab=expression(paste(bold('BBB'))),font.lab=2,cex.lab=2) 


axis(side=1, at = seq(0,1.5,.25),labels = c("0",".25",".5",".75","1","1.25","1.5")) 
axis(side=2, at = c(.01, 1/30, 1/10, 1/3, 1, 3),labels = c("1/100", "1/30", "1/10", "1/3", "1", "3"),las=1) 

axis(side=4,at = c(.01, 1/30, 1/10, 1/3, 1,3),labels = F) 
axis(side=4,at = c(.01*1.8, (1/30)*1.7, (1/10)*1.8, (1/3)*1.7, 1*1.7), c("YES", "NO", "YES", "NO", "NO"),tick=F,las=1,font=2, 
mgp=c(1.5,.3, 0),cex.axis=1.8) 


## Plot #3: ############################################### 
ci <- c(0.09253967, 0.48434172) 
plot(1, 1, ty="n" ,ann=F, yaxt="n", bty="n", xlim=c(ci[1], ci[2]), ylim=c(0, 1), xaxt="n") 
axis(side = 1, at = ci) 
arrows(ci[1], .01, ci[2], .01, code=3, lwd=2, angle = 90, length = .08) 
mtext(side=1,"GGG",line=2.8, font=2, cex= 1.5) 

答えて

1

layoutに高さと幅のパラメータを指定してみてください。それでも必要な場合があります

png(height=11, width=8, units="in", res=72) 
if(TL) {layout(m3, widths=c(3, 2,2,3), heights=rep(1.2, ncol(m3))) 
      }else{ 
       layout(m2)} 
    #.... your code here 
dev.off() 

:私はあなたの目標に近いかもしれないものです側面の余分な文字がプロットされた領域の端を越えて広がっているように見えるので、余白の調整やmtextの位置調整があります。

enter image description here

+0

ありがとうございました! 'layout()'流体内に 'width ='と 'height ='パラメータを作る方法はありますか?私はプロットが何らかの形で変化した場合、これらの2つのパラメータが自動的に調整されるということですか? – rnorouzian

+0

幅と高さのデフォルトは、一連の1が適切な行数と列数を繰り返すため、あなたが望んでいた「流動性」の種類についてより具体的に説明する必要があります。 –

+0

私が 'png'を使用した唯一の理由は、あなたが見ることができるイメージを作ることでした。これらのプロットを保持するのに十分なサイズを持つように、OS固有の対話型スクリーンデバイスを設定することができます。 –

関連する問題