首页 > 解决方案 > 如何使两列以上的 plot.data.frame 与 par(mfrow) 一起使用

问题描述

当我调用plot具有两个 [numeric] 列的数据框并par设置为给我两列图时,我得到了预期的行为:

par(mfrow = c(1, 2))
d <- data.frame(x=0:5, z=0:5)
plot(d)

用绘图填充左半边的画布

但是,当我plot使用包含两列以上的数据框参数调用时,它似乎会覆盖我par对行/列的设置。par无论我的设置如何,该图都会填充整个画布。

par(mfrow = c(1, 2))
d <- data.frame(x=0:5, y=5:0, z=0:5)
plot(d)

用绘图填充整个区域的绘图画布

这是预期的行为吗?有没有办法让第二个例子中给出的两个图并排?

标签: rplot

解决方案


当 data.frame 包含超过 2 列时,plot(d)调用pairs(d)以生成散点图矩阵(请参阅 R 帮助 - ?plot.data.frame 和 ?pairs 了解更多信息)。在您的情况下,如果您想并排生成 2 个图 z~x 和 y~x,您可以执行以下操作:

par(mfrow=c(1,2))
d <- data.frame(x=0:5, y=5:0, z=0:5)
plot(d[,-3])  # plot y~x
plot(d[,-2])  # plot z~x
par(mfrow=c(1,1))

在此处输入图像描述


推荐阅读