32

R を使用して、散布図で軸を常に正方形にするにはどうすればよいですか? たとえば、次のようにします。

> plot(iris)

また

> plot(iris$Petal.Width, iris$Petal.Length)

軸を正方形にしたい、つまり、x 軸と y 軸の長さと目盛りラベルを同じにしたい。

現在提案されている回答は機能しません: 呼び出し、

plot(iris$Petal.Width, iris$Petal.Length, xlim=c(0,10), ylim=c(0,10), asp=1)

生成:

ここに画像の説明を入力

これは正方形ではなく、同じ軸の目盛りと目盛りラベルを持っていません。x 目盛りラベル間のスペースは同じでなければならず、プロットは長方形ではなく正方形である必要があります。

4

2 に答える 2

53

プロット領域を正方形にするために、グラフィック パラメータも設定する必要がありpty="s"ます (デバイスのサイズと制限に関係なく)。

par(pty="s")
plot(iris$Petal.Width, iris$Petal.Length, asp=1)
lines(2+c(0,1,1,0,0),3+c(0,0,1,1,0)) # confirm square visually

高い長いです

于 2013-02-02T00:57:07.520 に答える
6

まず第一に、私にとって、プロットはすでに正方形(大きな画像)になっています。明らかにあなたにとってはそうではなく、とにかく画面よりも大きなプロットを作成する必要があるかもしれません。

したがって、プロットのサイズは、出力領域のサイズ、つまりプロットウィンドウ、画像ファイルなどによって制御されます。Rstudioを使用すると、組み込みのGUIを使用してプロットサイズを指定できます。ベースRコンソールの使用を主張する場合は、手動でエクスポートを行う必要があります。最初にファイルを開きます。

png("image.png", width=600, height=600)

これにより、作業ディレクトリ内の画像ファイルが同じ比率で開きます。今プロット:

x = iris$Petal.Width
y = iris$Petal.Length
all = c(x,y)
range = c(min(all), max(all))
plot(x, y, xlim=range, ylim=range)

そして、ファイルを閉じます。

dev.off()

結果:

ここに画像の説明を入力してください

于 2013-02-01T23:09:00.803 に答える