2012-01-01 13 views
28

私は、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) 
+1

ええ、私が言っているようにしてください:-)、そして 'ggplot'を学んでください。 –

+2

基本的なグラフィックスの基本ははっきりと分かっていますので、少なくともggplot2/latticeの感触を得ることをお勧めします。彼らはかなり異なっていますが、あなたはそれらを素早く拾うでしょう。いったん一般的な構文+各フローの感覚を持っていれば、あなたはあなたの時間の大部分を費やしたいものを決めることができます。しかし、それぞれに基本的な知識を持つことは非常に価値があります。 – joran

答えて

31

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

1つの不快感は、建築xlim=c(0:1.0)の使用でした。 xlimは2要素のベクトルを期待しているので、xlim = c(0,1)と期待しています。 「:」演算子を使用すると、「0:2.5」で試行した場合に予想外の結果が得られるため、キーストロークが少なく、将来のエラーの対象が少なくなります。

+0

ありがとう!はい、コロンとコロンのxとylimの使用についての私の間違い。私は0から2.5ではなく0から1を使用していたことを幸運に思う。私はasp = 1とasp = TRUEの使用の違いについてはまだ少し不明です。 –

+1

「TRUE == 1」なので違いはありません。しかし、1以外のアスペクト比を使用することもできます。 –

35
par(pty="s") 
plot(...) 

あなたのx、yの範囲が同じであるので、あなたの場合には(私が思うに)仕事をするであろう、プロットタイプが正方形であることを設定します。 ?かなりよく隠されたオプション?

関連する問題