0

2 行 2 列に配置された 3 つのプロット

 attach(mtcars)
 par(mfrow=c(2,2))
 plot(wt,mpg, main="Scatterplot of wt vs. mpg")
 plot(wt,disp, main="Scatterplot of wt vs disp")
 boxplot(wt, main="Boxplot of wt")

しかし、テキストだけでパネルを作成し、それをグリッドの 4 番目の位置に追加するにはどうすればよいでしょうか。申し訳ありません。多くの質問者のように、私のコードから私の心や直感を読み取るように求めていたことがわかりました。テキストは、空白の場所のグリッドに左揃えで配置されることを期待していました。

(何らかの理由で、これは質問するのが完全に合理的であるように思われましたが、提供された重複に対する僅差の投票や指名がないにもかかわらず、削除されました。答えとして、私がまとめたものを入れますが、もっと洗練された解決策があるかもしれません。同様の質問の候補のタイトルで、この問題に一致するものは見つかりませんでした.)

plot(1:100, 1:100, axes=FALSE, ylab="", xlab="", type="n")
text( rep(c(1,50), each=10), rep( seq(1, 100, by=10),2), labels=letters[1:20])

細かい粒度のグリッドがそれを行う正しい方法であったかどうか、私は事後疑問に思いました。おそらく、適切な数の行と列を持ち、左寄せのテキストを使用する、より粗いグリッドは、より表に似ているでしょう。baptiste の tableGrob を含む gridExtra パッケージも、生産的な方向性になる可能性があります。

"plot" の代替テキスト引数は次のようになります。

txt <- structure(c("am", "carb", "cyl", "disp", "drat", "gear", "hp", 
                   "mpg", "qsec", "vs", "wt", "this"), .Dim = 3:4)


> txt
     [,1]   [,2]   [,3]   [,4]  
[1,] "am"   "disp" "hp"   "vs"  
[2,] "carb" "drat" "mpg"  "wt"  
[3,] "cyl"  "gear" "qsec" "this"
4

3 に答える 3

1

ここに 2 セントを投入しようと思いました。これを行う簡単な方法が 2 つあります (ただし、現在構成されているように、行と列のインデックスは表示されません)。どちらもtextあなたが提案したように使用しますが、あなたが議論しているが表示されていないより粗いグリッドに物事をレイアウトするように働きます. 両方の左揃えの場合、キー引数はpos.

オプション 1 (改行を使用してグリッドを作成する)

attach(mtcars)
par(mfrow=c(2,2))
plot(wt,mpg, main="Scatterplot of wt vs. mpg")
plot(wt,disp, main="Scatterplot of wt vs disp")
boxplot(wt, main="Boxplot of wt")
txt <- structure(c("am", "carb", "cyl", "disp", "drat", "gear", "hp", 
                   "mpg", "qsec", "vs", "wt", "this"), .Dim = 3:4)

plot.new()
sapply(1:4, function(i) text(i/4, .5, paste(txt[,i],collapse='\n'), pos=4))

ここに画像の説明を入力

オプション 2 (テキストのベクトル化を使用してグリッドを作成する)

attach(mtcars)
par(mfrow=c(2,2))
plot(wt,mpg, main="Scatterplot of wt vs. mpg")
plot(wt,disp, main="Scatterplot of wt vs disp")
boxplot(wt, main="Boxplot of wt")
txt <- structure(c("am", "carb", "cyl", "disp", "drat", "gear", "hp", 
                   "mpg", "qsec", "vs", "wt", "this"), .Dim = 3:4)

plot.new()
sapply(1:4, function(i) text(i/4, (1:3)/3, rev(txt[,i]), pos=4))

ここに画像の説明を入力

于 2013-12-16T19:12:20.933 に答える
0

どのようなテキストが必要かはわかりませんが、「hello world」は次のとおりです。

plot.new()
text(0.5,0.5,"hello world",cex=6)

ここに画像の説明を入力

于 2013-10-02T19:44:07.273 に答える