No.02477 Rグラフの軸目盛の表示非表示  【Rはじめました】 2007/01/26(Fri) 17:04

species <- rep(c(1:4),c(50,35,55,60))
area <- factor(rep(1:5,40))
sex <- factor(c(rep(1:2,each=2,times=25),rep(1:2,times=50)))
TL <- c(rep(20:30,each=2,len=100),rep(25:35,len=100))+rnorm(200)
test.data <- data.frame(species=species,area=area,sex=sex,TL=TL)
と いうデータに対して,以下のようにして複数のグラフを作成して縦横に行列に並べたときに,x軸の目盛は最下段の行のグラフにのみ表示し,y軸の目盛は左端 の列のグラフにのみ表示する,というようなことは可能でしょうか,もし可能であれば,その方法を教えて頂きたく,お願い致します。
freq <- function(x,lo,hi,w){
x <- x[!is.na(x)]
n <- length(x)
f <- table(cut(x, br = seq(lo, hi, w), right = FALSE))
if (n != sum(f)) {
stop
}
res <- cbind(f,f/n*100)
colnames(res) <- c("度数","相対度数")
return(res)
}
par(mfrow=c(5,4),mar=c(2,2,1,1),oma=c(3,3,1,1))

for(i in 1:5){
for(j in 1:4){
selected <- is.element(test.data$area,i) & is.element(test.data$species,j)
print(sum(selected))
male <- freq(test.data[sex == 1 & selected,]$TL,10,40,2)
female <- freq(test.data[sex == 2 & selected,]$TL,10,40,2)
matplot(male,typ="l",ylab="",axes=F,yaxp=c(0,40,10),ylim=c(0,40))
matplot(female,type="l",add=TRUE,lty=3)
axis(1, at=seq(0,30,5), labels=10+seq(0,30,5),pos=0)
axis(2, at=seq(0,40,10))
}
}
mtext("Frequency(%)",side=2,line=1,outer=TRUE)
mtext("TL(cm)",side=1,line=1,outer=TRUE)

No.02479 Re: Rグラフの軸目盛の表示非表示  【青木繁伸】 2007/01/26(Fri) 17:16

if (i==5) axis(1, at=seq(0,30,5), labels=10+seq(0,30,5),pos=0)
if (j==1) axis(2, at=seq(0,40,10))
としたいのかな?

No.02490 Re: Rグラフの軸目盛の表示非表示  【Rはじめました】 2007/01/27(Sat) 01:11

ありがとうございます。なるほど,こういう方法があるのですね。勉強になります。
ところで,これだと,左列と最下行以外の軸と目盛および数字が表示されませんが,軸と目盛のヒゲは全てのグラフに表示して,数字だけは最左列と最下行にのみ表示するということをしたいのですが,可能でしたらご教授いただきたく,お願いします。
最初の質問が説明不足で失礼致しました。

No.02491 Re: Rグラフの軸目盛の表示非表示  【青木繁伸】 2007/01/27(Sat) 08:51

工夫とか,応用とか,組み合わせるとか,いろいろやってみるとか,
if (i==5) {
axis(1, at=seq(0,30,5), labels=10+seq(0,30,5),pos=0)
}
else {
axis(1, at=seq(0,30,5), labels=rep("", 7),pos=0)
}
if (j==1) {
axis(2, at=seq(0,40,10))
}
else {
axis(2, at=seq(0,40,10), labels=rep("", 5))
}

No.02492 Re: Rグラフの軸目盛の表示非表示  【Rはじめました】 2007/01/27(Sat) 09:06

青木先生ありがとうございました。
色々やってみましたが,labels=rep("", 7)の発想がありませんでした。
非常に助かりました。お手数かけて申し訳ありませんでした。

● 「統計学関連なんでもあり」の過去ログ--- 040 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る