R语言基础绘图添加legend图例不显示的问题如何解决?
图例不显示的核心原因
- 坐标超出可视范围:你设置的图例y坐标为95,而你生成的样本数值是均值为10的绝对值正态分布,y轴默认上限远低于95,图例被绘制到了画布外无法显示。
- 颜色参数不匹配:你绘图时的分类颜色为红色、蓝色,但图例设置的颜色为红色、黑色,即便显示也和图中分类无法对应。
- 额外说明:R基础绘图的
plot()函数默认返回NULL,赋值给plot_1、plot_2等变量无实际作用,不属于报错原因。
修复方法
方案1:使用内置位置关键字(推荐,无需手动计算坐标)
直接用R内置的位置关键字定位图例,自动适配绘图区域,代码示例如下,其余两张图按相同逻辑修改即可:
# plot1 示例 plot(c$a, type = "h", col = c$col, main = "plot_1, i = 1") legend("topright", legend = c("Sampled", "Not Sampled"), col = c("red", "blue"), lty = 1, cex = 0.8)
可选的位置关键字包括"topleft"、"topright"、"bottomleft"、"bottomright"、"top"、"bottom"、"left"、"right"、"center",可根据图中空白区域选择。
方案2:手动指定坐标(适配自定义布局需求)
如果需要自定义图例位置,先手动设置y轴范围预留图例显示空间,再对应设置图例坐标即可:
# plot1 示例,预留10%的y轴空间放图例 plot(c$a, type = "h", col = c$col, main = "plot_1, i = 1", ylim = c(0, max(c$a)*1.1)) legend(1, max(c$a)*1.05, legend = c("Sampled", "Not Sampled"), col = c("red", "blue"), lty = 1, cex = 0.8)
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

