R 并排合并两个情节

R 并排合并两个情节,r,plot,R,Plot,我需要把两个情节并排放在一起。因此,这不是一个艰苦的练习,除了: 我想要并且需要使用基本的图形 绘图应无缝地彼此相邻放置 下面是我如何解决它的一个例子 x2 <- seq(1.9, 7.3, length.out=10) x1 <- seq(0.2, 5.8, length.out=10) y1 <- rnorm(10) par(mfrow=c(1,2)) par(mar=c(5,4,4,0)) plot(x1, y1, type="l", bty="n", xlim=rang

我需要把两个情节并排放在一起。因此,这不是一个艰苦的练习,除了:

  • 我想要并且需要使用基本的图形
  • 绘图应无缝地彼此相邻放置
  • 下面是我如何解决它的一个例子

    x2 <- seq(1.9, 7.3, length.out=10)
    x1 <- seq(0.2, 5.8, length.out=10)
    y1 <- rnorm(10)
    par(mfrow=c(1,2))
    par(mar=c(5,4,4,0))
    plot(x1, y1, type="l", bty="n", xlim=range(x1), ylim=c(-2, 2))
    par(mar=c(5,0,4,2))
    plot(x2, y1, type="l", bty="n", xlim=rev(range(x2)), ylim=c(-2, 2), yaxt="n")
    
    x2将
    xaxs=“i”
    添加到第一个
    par()
    ,即

    par(mfrow = c(1, 2), xaxs = "i")
    
    然后再次运行整个代码

    xaxs
    指示用于x轴的轴间隔计算样式。默认值为
    “r”
    (常规),它在每一端将数据范围扩展4%。将其修改为
    “i”
    将使x轴适合原始数据范围


    尽管@DarrenTsai的答案绝对正确,但您会发现,当x轴比例具有不同的mar参数时,它们每像素占用的值不同。我建议您考虑将它们绘制在一起,然后添加自定义轴。

    x2 <- seq(1.9, 7.3, length.out=10)
    x1 <- seq(0.2, 5.8, length.out=10)
    y1 <- rnorm(10)
    ValueTable <- data.frame(Foward = c(x1,max(x1) + (x2-min(x2))), Join = c(x1,rev(x2)))
    plot(ValueTable$Foward,c(y1,rev(y1)),type = "l",xaxt="n",xlab = "",ylab = "Value")
    axis(1, ValueTable$Foward[seq(1,nrow(ValueTable),by = 2)], labels=formatC(ValueTable$Join[seq(1,nrow(ValueTable),by = 2)],format = "f", digits = 2))
    abline(v=max(x1))
    

    x2这是一条很有价值的评论,但由于我必须完全重写绘图函数(而且它非常复杂),而且缩放也不太重要,因此我对另一种解决方案非常满意。另外,请注意,虽然您是正确的,但这并不是我的问题的真正答案。为了进一步解释我的问题,两个绘图上的比例可能不同,还有许多其他参数,这就是为什么我希望通过将绘图粘贴在一起而不是一次绘图来完成此操作。