R语言使用plot函数绘图时legend图例无法正常显示问题求助
R语言基础绘图图例不显示排查方案
- 问题1:顶部边距不足
如果之前修改过par(mar)参数压缩了上边距,"top"位置的图例将会落在画布外不可见。解决方法是绘图前重置边距,放大上边距预留图例空间:
# mar四个值分别对应下、左、上、右的边距,将第三个上边距参数调大 par(mar = c(5, 4, 5, 2))
- 问题2:顶部位置与标题冲突
"top"关键词默认对齐绘图区域最顶部,会和主标题重叠,也可能因为绘图设备尺寸过小被裁切。解决方法是添加偏移参数,或者改用其他位置关键词:
# inset参数第一个值为水平偏移,第二个为垂直偏移,正数代表向内偏移 legend(x="top", legend = c("a","b"), lty = 1, lwd = 1, col = 1:2, inset = c(0, 0.05) )
- 问题3:定位关键词失效
部分时间序列对象的坐标轴范围识别异常,也会导致关键词定位错误。可以直接用坐标指定图例位置,结合你的绘图y轴范围-3~2,x轴范围1960~2020,可直接指定坐标:
legend(x=1990, y=1.8, legend = c("a","b"), lty = 1, lwd = 1, col = 1:2 )
完整可用代码示例
# 调整边距预留图例空间 par(mar = c(5, 4, 5, 2)) # 绘制基础图形 plot(cycle_filt_ts[,1],main="Filtered Estimate of Transitory Component", ylim = c(-3,2),xlab="", type = "l", col=1) lines(cycle_filt_ts[,2], type = "l", col=2) # 添加带偏移的顶部图例 legend(x="top", legend = c("a","b"), lty = 1, lwd = 1, col = 1:2, inset = c(0, 0.05), bty = "n" # 可选,移除图例边框 )
如果调整后依然无法显示,可先将图例位置改为"bottom"测试,若底部可以正常显示,说明仅为顶部位置的边距/坐标冲突,继续微调边距和偏移参数即可。
内容的提问来源于stack exchange,提问作者Yuwen
相关产品推荐
相关产品推荐

