R语言中使用mtext()命令添加的外层标题为何无法显示?
解决多子图中外层标题不显示的问题
我太懂这种明明参数都加了,结果标题就是不出来的憋屈感了!其实问题核心是R默认不会为外层标题预留空间,当你用mfrow切分好子图后,外层标题直接被挤到绘图区域外面去了,自然看不到。
给你调整后的可运行代码,亲测有效:
# 生成测试数据 mt = as.data.frame(matrix(data = rnorm(n = 400), ncol = 4)) # 先设置外层边距(oma参数顺序:下、左、上、右) # 这里给顶部预留2行空间放标题,数值可以按需调整 par(oma = c(0, 0, 2, 0)) # 开启2×2的子图布局 par(mfrow = c(2,2)) # 绘制四个密度图 plot(density(mt$V1)) plot(density(mt$V2)) plot(density(mt$V3)) plot(density(mt$V4)) # 添加外层标题,line控制距离顶部的位置,cex调整字号 mtext(text = "Test", outer = TRUE, side = 3, line = 0.5, cex = 1.5)
关键细节说明:
par(oma=c(0,0,2,0)):必须在mfrow之前调用,它会在整个绘图区域的顶部划出空白区域,让外层标题有地方显示。line=0.5:可以调整标题和顶部边缘的距离,比如改成1会让标题更靠下一点,改成0则紧贴顶部。cex=1.5:直接在这里控制标题的字号大小,完全满足你的需求。
如果你觉得mtext用着不习惯,也可以用title()函数替代,效果完全一致:
title(main = "Test", outer = TRUE, cex.main = 1.5, line = 0.5)
内容的提问来源于stack exchange,提问作者Hugo
相关产品推荐
相关产品推荐

