【问题标题】:How to plot mirror plots? (Two plots sharing the same x-axis, but one is upside down - below the axis)如何绘制镜像图? (两个图共享相同的 x 轴,但一个是倒置的 - 在轴下方)
【发布时间】:2012-09-14 08:53:50
【问题描述】:

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

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

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

谢谢!

【问题讨论】:

    标签: r plot


    【解决方案1】:

    如果 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")
    

    【讨论】:

    • 这就是我要走的路——尽管你可以通过ylim = range(c(dens1$y,-dens2$y))lines(dens2$x,-dens2$y) 节省几步...甚至x2 &lt;- -rnorm(100, m=2)
    • 对,lines(dens2$x,-dens2$y) 会更简单,但x2 &lt;- -rnorm(100, m=2) 不起作用,因为密度始终为正,与变量的值无关。
    • 是的,很抱歉没有关注density
    【解决方案2】:

    您可以通过使用参数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))
    

    【讨论】:

    • 你知道一种方法来组合这两个图,使它们共享一个轴吗?我喜欢改变 ylim 方向的简单性。永远不会想到这一点。
    【解决方案3】:

    使用par 函数的mar 参数可以只获得一个x 轴。 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 graph gallery

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 1970-01-01
      • 2021-03-14
      • 2021-12-15
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      相关资源
      最近更新 更多