web-dev-qa-db-ja.com

散布図の固定アスペクト比を定義する方法

2つの母集団の各個体で測定された2つの同位体の相関係数(値= 0.0:1.0)をプロットしています。散布図のアスペクト比を固定して、グラフィックデバイスに関係なくx軸とy軸がまったく同じサイズになるようにします。提案?

これはRでの私の最初のプロットです。私のコードの改良に関するコメントをいただければ幸いです。最後に、基本的なプロットテクニックを学ぶことに投資する価値はありますか、それともggplot2または格子にジャンプする必要がありますか?

私のプロットスクリプト:

## Create dataset
WW_corr <-
structure(list(South_N15 = c(0.7976495, 0.1796725, 0.5338347,
0.4103769, 0.7447027, 0.5080296, 0.7566544, 0.7432026, 0.8927161
), South_C13 = c(0.76706752, 0.02320767, 0.88429902, 0.36648357,
0.73840937, 0.0523504, 0.52145159, 0.50707858, 0.51874445), North_N15 = c(0.7483608,
0.4294148, 0.9283554, 0.8831571, 0.5056481, 0.1945943, 0.8492716,
0.5759033, 0.7483608), North_C13 = c(0.08114805, 0.47268136,
0.94975596, 0.06023815, 0.33652839, 0.53055943, 0.30228833, 0.8864435,
0.08114805)), .Names = c("South_N15", "South_C13", "North_N15",
"North_C13"), row.names = c(NA, -9L), class = "data.frame")

opar <- par()

## Plot results
par(oma = c(1, 0, 0, 0), mar = c(4, 5, 2, 2))           
plot(1,1,xlim=c(0:1.0), ylim=c(0:1.0), type="n", las=1, bty="n", main = NULL,
     ylab=expression(paste("Correlation Coefficient (r) for ", delta ^{15},"N ",
                     "\u0028","\u2030","\u0029")),
     xlab=expression(paste("Correlation Coefficient (r) for ", delta ^{13},"C ",
                     "\u0028","\u2030","\u0029")))

points(WW_corr$South_N15, WW_corr$South_C13, pch = 23, cex = 1.25, 
       bg ="antiquewhite4", col = "antiquewhite4")
points(WW_corr$North_N15, WW_corr$North_C13, pch = 15, cex = 1.25,
       bg ="black")
axis(1, at = seq(0, 1.0, by = 0.1), labels = F, tick = TRUE, tck = -0.01)
axis(2, at = seq(0, 1.0, by = 0.1), labels = F, tick = TRUE, tck = -0.01)
abline(h=.86, v=.86, col = "gray60", lty = 2)
legend("topleft", c("North", "South"), pch = c(15, 23), 
       col = c("black", "antiquewhite4"), pt.bg = c("black", "antiquewhite4"),
       horiz=TRUE, bty = "n")

par(opar)
38
Keith W. Larson

_asp=1_をプロットのパラメーターとして使用すると、低レベルのplot.window呼び出しによって解釈され、アスペクト比が統一されます。 ylimとxlimを使用した呼び出しは、アスペクト比の仕様と競合する可能性があり、aspが「優先」される可能性があります。これは非常に印象的な最初のRグラフです。そして、優れた質問構成。高得点。

耳障りな注意点の1つは、構文xlim=c(0:1.0)の使用でした。 xlimは2要素ベクトルを想定しているため、xlim = c(0,1)を想定していました。異なる制限セットに変更した場合、「0:2.5」で試してみると予期しない結果が得られるため、キーストロークが少なくなり、将来エラーが発生しにくくなります。

42
42-
par(pty="s")
plot(...)

xとyの範囲が同じであるため、プロットタイプを正方形に設定します。 ?parに文書化されているかなりよく隠されたオプション。

43
Jonathan Burley