R语言绘图中lines函数部分线条无法绘制的问题求助
解决R中
lines()函数无法绘制线条的问题 嘿,我一眼就看出问题所在啦!那些没能显示出来的“线条”,本质上根本不是线段——咱们来仔细拆解:
问题根源
你那些失败的lines()调用,传入的是完全相同的两个坐标点:
- 比如
lines(c(0.0,0.0), c(3.0,3.0), ...):x的两个值都是0.0,y的两个值都是3.0,这其实是同一个点(0, 3),lines()函数是用来连接不同点形成线条的,单个点当然画不出线! - 同理,
c(0.1,0.1), c(1.3,1.3)是点(0.1, 1.3),c(1.3,1.3),c(0.1,0.1)只是把点的顺序反过来了,但还是同一个点,所以都不会显示线条。
修复方案
如果你确实想画水平/垂直线条,只需要让其中一个坐标的两个值有微小差异(哪怕差0.01也行),变成真正的线段:
myColors=c("red","green","blue","orange","pink","purple") df<-setNames(data.frame(matrix(ncol = 3, nrow = 0)), c("Person","yearsExp", "yearsStudy")) df[nrow(df) + 1,] = c(1,0,0) df[nrow(df) + 1,] = c(2,0,3) df[nrow(df) + 1,] = c(3,3,0) df[nrow(df) + 1,] = c(4,3,3) plot(df$yearsExp,df$yearsStudy,xlab="yearsExp",ylab="yearsStudy",main="Demo Plot",pch=16,col=myColors,type="n",xlim=c(0,3),ylim=c(0,3)) text(df$yearsExp,df$yearsStudy,labels=df$Person) # 原本能画出的线条保持不变 lines(c(1.9,1.9), c(2.0,2.4), pch=16, col=myColors[3],type="l") lines(c(1.3,1.2), c(1.8,1.1), pch=16, col=myColors[2],type="l") lines(c(1.7,1.1), c(1.3,1.9), pch=16, col=myColors[1],type="l") # 修改后可正常显示的线条 lines(c(0.0,0.0), c(3.0,2.9), pch=16, col=myColors[6],type="l") # 垂直线 lines(c(0.1,0.2), c(1.3,1.3), pch=16, col=myColors[5],type="l") # 水平线 lines(c(1.3,1.2),c(0.1,0.1), pch=16, col=myColors[4],type="l") # 水平线
如果你的需求只是标记单个点,那用points()函数更合适,比如:
points(0.0, 3.0, pch=16, col=myColors[6]) points(0.1, 1.3, pch=16, col=myColors[5])
内容的提问来源于stack exchange,提问作者Ab Bennett
相关产品推荐
相关产品推荐

