You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:29:41