0

グラフで比較したい 2 つのサンプルがあるとします。それを行う 1 つの方法は、以下のように重ねることです。

x1 = rnorm(100)
x2 = rnorm(100, mean=2)
plot(density(x1))
lines(density(x2), col="red")

ただし、下のプロットのように上下逆であることを除いて、プロットが x1 のプロットと同じ軸を共有するように x2 をプロットする方法があるかどうか疑問に思います。追加のパッケージをダウンロードする必要のない方法があれば特に便利です。

ここに画像の説明を入力

ありがとう!

4

3 に答える 3

4

y軸にゼロ未満の値が含まれているかどうかが問題にならない場合は、次のように使用できます。

x1 <- rnorm(100)
x2 <- rnorm(100, mean=2)
dens1 <- density(x1)
dens2 <- density(x2)
dens2$y <- dens2$y * -1
plot(dens1, 
     ylim = range(c(dens1$y, dens2$y)),
     xlim = range(c(dens1$x, dens2$x)),
     main = "",
     xlab = "")
lines(dens2, col = "red")

密度

于 2012-09-14T10:17:17.557 に答える
3

ylim=(...)引数(またはxlim=(...)) を使用し、範囲を逆の順序で指定することにより、プロットの軸を逆にすることができます。

例えば:

layout(matrix(1:2, ncol=1))
par(mai=c(0.5, 1, 0.5, 1))

plot(c(-6, 6), 0:1, type="n", ylim=c(0, 1), xlab="", ylab="")
lines(density(x1), ylim=c(0, 1))

plot(c(-6, 6), 0:1, type="n", ylim=c(1, 0), xlab="", ylab="")
lines(density(x2), col="red", ylim=c(1, 0))

ここに画像の説明を入力

于 2012-09-14T09:17:24.553 に答える
0

mar関数の引数を使用して x 軸を 1 つだけ取得することができparます。R コードは次のようになります。

   #Create Data
    x1 = rnorm(100)
    x2 = rnorm(100, mean=2)

    #Make the plot
    par(mfrow=c(2,1))
    par(mar=c(0,5,3,3))
    plot(density(x1) , main="" , xlab="", ylim=c(0,1) , xaxt="n", las=1 , col="slateblue1" , lwd=4 )
    par(mar=c(5,5,0,3))
    plot(density(x2) , main="" , xlab="Value of my variable", ylim=c(1,0) , las=1 , col="tomato3" , lwd=4)

このプロットを与える:

1

このグラフはR グラフ ギャラリーにあります

于 2015-12-16T20:12:30.170 に答える