我正在尝试创建一个图表矩阵,但我希望左上角是空白的。所以我正在使用:
frame()
R回应:
frame()
出错:数字边距过大
我正在使用以下两行来创建我的布局:
plotIDs <- matrix(c(1:16), 4, 4, byrow = T);
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1));
这给了我以下布局:
如果我然后发出frame()
,我会收到上述错误。我究竟做错了什么?我没有看到任何方法为frame()
命令指定高度或宽度(只是plot.new()
的别名)?
答案 0 :(得分:9)
该消息表示图中的边距太大,并且没有为绘图留出足够的空间。
尝试减少保证金:
op <- par(mar = par("mar")/2)
plot.new() ## this is optional for this example
plot(1:10)
par(op) ## tidy up to restore the default par setting
您可以从frame()或plot.new()开始,或者只是绘制到第一个面板中。请注意,您需要考虑每个不同面板的适当边距设置,以及微调标签尺寸等。
对于一个完全空白的面板,你可以完全杀掉边距:
op <- par(mar = rep(0, 4))
plot.new()
par(op)
答案 1 :(得分:7)
您可以通过在矩阵中使用0来使用布局将面板留空,因此如果您使用0:15而不是1:16,则第一个面板将为空白而无需您跳过。当然,你需要为其余的面板设置边距和cex。