前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】绘制箭头(一)

【R语言】绘制箭头(一)

作者头像
生信交流平台
发布2022-09-21 18:46:37
7300
发布2022-09-21 18:46:37
举报

我们在绘图的时候,有时候需要在图中特殊指出某一部分,或者突出某一部分,这个时候就需要用到箭头了。

今天小编就来跟大家聊一聊,R中绘专门绘制箭头的arrows函数。函数的用法和参数如下:

我们结合几个具体的例子来深入的解析一下这个函数。

代码语言:javascript
复制
#绘制散点图
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6))
#添加一个箭头,从二维空间中(1,1)到(4,4)
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4)

效果如下

我们也可以同时绘制两个箭头

代码语言:javascript
复制
#绘制散点图
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6))
#同时绘制两个箭头,一个从(1,1)到(4,4),另一个从(1,2)到(4,5)
#颜色分别为红色和蓝色
arrows(x0 = c(1, 1),  y0 = c(1, 2),  
       x1 = c(4, 4), y1 = c(4, 5),
       col=c("red","blue")
       )

效果如下

接下来,我们来看看length这个参数的作用。我们还是通过具体的例子来看效果。

代码语言:javascript
复制
#三张图并排一起,mfrow = c(1,3),一行三列
par(mfrow = c(1,3))
#length = 0.1
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), main = "length = 0.1")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 0.1)
#length = 0.5
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6),  main = "length = 0.5")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 0.5)
#length = 1
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6),  main = "length = 1")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 1)

效果是这样的,可以看出length这个参数控制箭头,头部的长度。

同样的,我们可以看看参数code的作用。

代码语言:javascript
复制
#三张图并排一起,mfrow = c(1,3),一行三列
par(mfrow = c(1,3))
#code = 1
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), main = "code = 1")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, code = 1)
#code = 2
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), main = "code = 2")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, code = 2)
#code = 3
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), main = "code = 3")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, code = 3)

效果如下,可以看出

code = 1 代表箭头由终止点指向起始点

code = 2 是默认值,箭头由起始点指向终止点

code = 3 代表在起始点和终止点两端都标上箭头

最后我们来看看参数angle的作用。

代码语言:javascript
复制
#三张图并排一起,mfrow = c(1,3),一行三列
par(mfrow = c(1,3))
#angle = 15
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6),  main = "angle = 15")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 0.5, angle = 15)
#angle = 45
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6), main = "angle = 45")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 0.5, angle = 45)
#angle = 60
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6),  main = "angle = 60")
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, length = 0.5, angle = 60)

可以看出angle这个参数控制的是箭头和箭身之间的夹角的大小。

当然我们还有其他的一下通用的参数,如col , lty ,lwd 等

代码语言:javascript
复制
#col控制颜色,lwd控制线的粗细,lty控制线的类型
#lty=1,实线,lty=2,虚线,
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6))
arrows(x0 = 1, y0 = 1, x1 = 4, y1 = 4, col = "red", lwd = 5, lty = 3)

效果如下

关于lty,lwd的具体值和对应的效果,可以参考下图。

最后,我们来个“毕业大戏”,这里就不写注释了,看到这里应该也能看得懂了。

代码语言:javascript
复制
plot(1:5, 1:5, xlim = c(0,6), ylim = c (0,6))
arrows(x0 = c(1,3,5,3), y0 = c(3,1,3,5), x1 = c(3,3,3,3), y1 = c(3,3,3,3), 
       col = c("red","blue","yellow","green"),
       code=1,
       angle=30,
       length=0.6,
       lwd = c(1,2,3,4), 
       lty = c(1,2,3,4)
       )

检阅

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档