双行图格式化

use*_*268 1 formatting plot r rows

我有以下问题:我想在R中制作一个图,其中两个图形在彼此之上.但是,上图应该占据大部分空间,下图应该只有一个非常低的高度(它只是用于表示"主"图中的特殊位置).目前我有这个代码,但我不知道如何设置每一行应该占用的空间(第二个绘图应该紧接在第一个之下):

dev.new()
png("multitest.png")
par( mfrow = c( 2, 1 ) ) 
plot( rnorm( n = 10 ), col = "blue", main = "plot 1", cex.lab = 1.1,ylab="yname", xlab='')
plot( rnorm( n = 10 ), col = "red", main = "", cex.lab = 1.1, xaxt='n',yaxt='n',xlab="xname", ylab="")
dev.off()
Run Code Online (Sandbox Code Playgroud)

我必须在服务器上运行它,我不知道是否有其他软件包可用于R.如果有建议使用其他软件包,我会尽力尝试.提前谢谢你,到目前为止我在R中使用了简单的直方图.

A5C*_*2T1 5

如@Roland所示,layout()为此目的要比使用更好par(mfrow...).以下是一些基本示例,向您展示如何开始使用layout.这些例子都不适合你:我只是举例,你可以弄清楚如何试验它.这里有用的功能也是layout.show().

  1. 两块地块,一块在另一块之上.第一个图比另一个宽.

    首先,想一想你希望你的数字出现的矩阵.按顺序编号.1=图1,2=图2,0=此空间中没有绘制任何内容.

         [,1] [,2] [,3] [,4]
    [1,]    1    1    1    1
    [2,]    0    2    2    0
    
    Run Code Online (Sandbox Code Playgroud)

    使用此矩阵layout():

    layout(matrix(c(1, 1, 1, 1, 0, 2, 2, 0), 2, 4, byrow=TRUE))
    plot(rnorm(n = 10), col = "blue", main = "plot 1", 
         cex.lab = 1.1, ylab="yname", xlab='')
    plot(rnorm(n = 10), col = "red", main = "", cex.lab = 1.1, 
         xaxt='n', yaxt='n', xlab="xname", ylab="")
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述

  2. 请注意,每个图的高度仍然相同.您可以使用heights参数来控制:

    layout(matrix(c(1, 1, 1, 1, 0, 2, 2, 0), 2, 4, byrow=TRUE), 
           heights = c(7, 3))
    plot(rnorm(n = 10), col = "blue", main = "plot 1", 
         cex.lab = 1.1, ylab="yname", xlab='')
    plot(rnorm(n = 10), col = "red", main = "", cex.lab = 1.1, 
         xaxt='n', yaxt='n', xlab="xname", ylab="")
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述

  3. 这是一个有三个图的例子.

    layout(matrix(c(1, 1, 2, 3), 2, 2, byrow=TRUE))
    plot(rnorm(n = 10), col = "blue", main = "plot 1", 
         cex.lab = 1.1, ylab="yname", xlab='')
    plot(rnorm(n = 10), col = "red", main = "", cex.lab = 1.1, 
         xaxt='n', yaxt='n', xlab="xname", ylab="")
    plot(rnorm(n = 10), col = "green", main = "", cex.lab = 1.1, 
         xaxt='n', yaxt='n', xlab="zname", ylab="")
    
    Run Code Online (Sandbox Code Playgroud)

    在此输入图像描述