如何解决R语言base::plot绘图中图例边距、样式异常问题
问题原因
- 你将颜色列
c$col转为了因子类型,R基础绘图系统在接收因子型的颜色参数时,会默认将因子水平映射为1、2的数值索引,对应R默认调色板的前两个颜色,而不会直接使用你写入的"red""blue"字符串作为颜色值 - 图例参数设置和实际绘图逻辑不匹配:你定义的
b<=10的分类对应颜色是蓝色,但图例中该分类对应的颜色写为了黑色;同时绘图用的是type="h"的实线竖线,图例设置lty=1:2会出现两种线型,和实际绘图效果不一致
修复方案
调整颜色列的类型和图例参数即可,修正后完整代码如下:
# 生成模拟数据 a = abs(rnorm(100,10,10)) b = abs(rnorm(100,10,10)) i = 1 c = data.frame(a,b,i) # 直接使用字符型颜色向量,不转为因子 c$col = ifelse(c$b>10,"red", "blue") # 绘图 plot(c$a, type = "h", col = c$col, main = "plot_1, i = 1", ylim = c(0, 100)) # 修正图例颜色、线型和实际绘图逻辑匹配 legend(1, 95, legend=c("Sampled", "Not Sampled"), col=c("red", "blue"), lty=1, lwd = 2, cex=0.8)
内容的提问来源于stack exchange,提问作者manro
相关产品推荐
相关产品推荐

