R语言中如何让填充三角形指向目标坐标并定位在线条上方?
解决R语言中三角形标记定位问题
points()函数本身不支持pos参数(该参数仅对text()有效),不过可以通过两种方法实现你要的效果:
方法1:用text()替代points(),利用pos参数
text()函数支持pos参数,同时可以通过pch指定绘制符号,直接设置pos=3就能让pch=25(尖朝下的填充三角)紧贴线条上方,尖部指向目标X坐标:
plot.new() segments(0, 0.5, 1, 0.5) text(0.5, 0.5, pch=25, pos=3)
方法2:手动调整points()的Y坐标
由于points()默认以符号中心定位,你可以计算符号高度来偏移Y坐标,让三角形尖部落在线条上:
plot.new() segments(0, 0.5, 1, 0.5) # 获取当前设备下符号的高度(与字符高度、cex缩放比例相关) sym_height <- par("cxy")[2] * par("cex") # 上移Y坐标一半符号高度,使尖部(朝下)刚好落在线条位置 points(0.5, 0.5 + sym_height/2, pch=25)
两种方法都能实现“三角形位于线条上方,尖部指向目标X坐标”的效果,其中方法1更简洁直观。
内容的提问来源于stack exchange,提问作者AdamO
相关产品推荐
相关产品推荐

