2

Rで複数のプロット図を作成するためにlayout()を使用していますが、y軸のみを下のプロットに表示したいです。したがって、ループからそれらを取り出して、軸の下に追加しますが、これを行うと、それらは切断されます。私が使用しているコードは次のとおりです。

onlytext <- function(string){
  plot(0:1, 0:1, bty='n', type='n', xaxt='n', yaxt='n', xlab='', ylab='')
  text(0.5, 0.5, string, cex=1.2, font=2)
}
nf <- layout(matrix(c(0,1:14), 5, 3, byrow=TRUE), heights = c(2,5,5,5,5), widths = c(1.5,4,4))

par (mar=c(.3,.3,.3,.3))
onlytext ('Approval'); onlytext ('Vote Choice')
name_vec <- c("Strongly Approve", "Approve", "Disapprove", "Strongly Disapprove")    
control_means_tab <- matrix(sample(rnorm(100), 48), ncol = 6, nrow = 4)
x <- seq(1,6)

for(i in 1:3){  
onlytext(name_vec[i])     
    for(j in 1:2){          

        plot(x, control_means_tab[j,], xaxt = 'n', xlab = '', ylab = '', xaxt='n', bty = "n",  ylim = c((min(c(control_means_tab, scorecard_means_tab, endorsement_means_tab))- .02),(max(c(control_means_tab, scorecard_means_tab, endorsement_means_tab)) + .02)),  col = "blue", pch = 19, cex =.6)


}   
}

onlytext(name_vec[4])     

        plot(x, control_means_tab[j,], xlab = '', ylab = '', xaxt = "n", bty = "n",  ylim = c((min(c(control_means_tab, scorecard_means_tab, endorsement_means_tab))- .02),(max(c(control_means_tab, scorecard_means_tab, endorsement_means_tab)) + .02)),  col = "blue", pch = 19, cex =.6)
        axis(1, 1:6, LETTERS[1:6])


        plot(x, control_means_tab[j,], xaxt = 'n', xlab = '', ylab = '', xaxt='n', bty = "n",  ylim = c((min(c(control_means_tab, scorecard_means_tab, endorsement_means_tab))- .02),(max(c(control_means_tab, scorecard_means_tab, endorsement_means_tab)) + .02)),  col = "blue", pch = 19, cex =.6)
                    axis(1, 1:6, LETTERS[1:6])

その軸を取り戻す方法についての考えは大歓迎です!

4

1 に答える 1

2

またはylimに関する情報を提供しなかったため、コードの一部を機能させることができませんでしたが、一般的には、あなたが何を求めているかがわかると思います。このコードを試して、役立つかどうかを確認してください。scorecard_means_tabendorsement_means_tab

x <- seq(1, 6)
y <- matrix(sample(rnorm(100), 48), ncol=6, nrow=8)
ylabs <- rep(c("Strongly Approve", "Approve", "Disapprove", "Strongly Disapprove"), rep(2, 4))
xlabs <- rep(c("Approval", "Vote Choice"), 4)
par(mfrow=c(4, 2), mar=c(1, 1, 1, 1), oma=c(2, 4, 2, 1))
for(i in seq(dim(y)[1])) {
    if(i < 6.5) {
        plot(x, y[i, ], xaxt='n', xlab='', ylab='', bty="n", col="blue", pch=19, cex=0.6)
        } else {
        plot(x, y[i, ], xlab='', ylab='', bty="n", col="blue", pch=19, cex=0.6)
        }
    if(i < 2.5) mtext(xlabs[i], side=3, line=1)
    if(i %in% c(1, 3, 5, 7)) mtext(ylabs[i], side=2, line=3)
    }
于 2013-06-18T21:29:45.263 に答える