一つcurve
polygon
を開始し、あなたのカーブの終点を接続しているので、それはいくつかの奇妙な形状を作成します。 ?polygon
から、
「最後の点を最初の点に結合することによってポリゴンが閉じられると仮定します。」
最初と最後の点はcurve
にfrom
とto
値によって与えられます。あなたの最初のケースでは、これらは-4
と0
です。
ちょうどあなたが1つのプロットに複数のカーブを入れたいときは、その問題に直面するかもしれない1つのプロット
での複数curve
秒
gg = curve(dnorm(x), -4, 4, xlim = c(-4,0), xaxs = "i") # Working!
polygon(gg, col = 2)

curve()
に
xlim
と
xaxs = "i"
を追加上記のように軸を制限することはできません。したがって、曲線オブジェクト(ここでは
gg
)の構造を深く掘り下げなければなりません。
最初に2つの曲線を作成しましょう。私たちは、gg
が$x
と$y
座標のリストだけであることがわかり
gg
# $x
# [1] -4.00 -3.96 -3.92 -3.88 -3.84 -3.80 -3.76 -3.72 -3.68 -3.64 -3.60 -3.56 -3.52 -3.48 -3.44 -3.40 -3.36 -3.32 -3.28
# [20] -3.24 -3.20 -3.16 -3.12 -3.08 -3.04 -3.00 -2.96 -2.92 -2.88 -2.84 -2.80 -2.76 -2.72 -2.68 -2.64 -2.60 -2.56 -2.52
# .....
# $y
# [1] 0.0001338302 0.0001569256 0.0001837125 0.0002147280 0.0002505784 0.0002919469 0.0003396012 0.0003944025 0.0004573148
# [10] 0.0005294147 0.0006119019 0.0007061107 0.0008135212 0.0009357722 0.0010746733 0.0.0014106023 0.0016122275
# .....
:
gg = curve(dnorm(x), -4, 4) ;
polygon(gg, col = 2) ;
gg = curve(dnorm(x), -4, 0, xlim = c(-4,0), xaxs = "i", add = T) ;
は、今、私たちは
gg
を見てみましょう。したがって、
0, 0
に1つの座標を2番目の
gg
に追加して、重複する2番目の曲線の終わりをシミュレートすることができます。その後、両方の曲線が正しくプロットされます。
gg$x <- c(gg$x, 0)
gg$y <- c(gg$y, 0)
polygon(gg, col = 4)

最後の直線を描かないように、 'polygon()'( 'plot()'を使用しないでください)をすばやく修正しましたか?つまり、あなたは完全な両側カーブを持っていると仮定し、次に半曲線を使って左端をシェードすることにします。 – rnorouzian