0

假设我有两个想要以图形方式比较的样本。一种方法是将一个放在另一个上面,如下所示:

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

然而,我想知道是否有一种方法可以绘制 x2,使得该图与 x1 的图共享相同的轴,除了它是颠倒的,如下图所示。如果有任何方法不涉及下载额外的软件包,那就太好了。

在此处输入图像描述

谢谢!

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 轴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 回答