R语言绘制流程图(一)

640?wx_fmt=gif

点击上方蓝色字体,关注我们

640?wx_fmt=gif 作者简介

作者:吴健 中国科学院大学 R语言、统计学爱好者,尤其擅长R语言和Arcgis在生态领域的应用分享

个人公众号:统计与编程语言 


R语言为用户提供了大量的绘图函数,包括基于图形语法的ggplot2和传统绘图包等。关于上述绘图函数有大量的介绍材料,大家可以自行查找材料进行学习。

本文介绍R语言中基于低水平绘图设备(仅能绘制基本图形)来绘制流程图。

在第一部分我首先介绍R语言低水平绘图设备如何来绘制基本图形,下一期会以这一期的内容为基础来绘制一个完整的流程图,敬请期待。

1.绘制基本图元文件,并在矩形框中添加文本:


library(grid)
grid.roundrect(width=0.25, height=0.25)
grid.text(“ISBN”)

640?wx_fmt=png

2.根据视口的方法调整文字在矩形框中的位置


pushViewport(viewport(width=0.25,height=0.125))
grid.roundrect()
grid.text(“ISBN”, x=unit(2,”mm”), y=unit(1.5,’lines’), just=’left’)
grid.text(“title”, x=unit(2,”mm”), y=unit(0.5,”lines”), just=”left”)
popViewport()


640?wx_fmt=png

3.根据文字大小绘制矩形框的大小


labels <- c(“ISBN”, “title”)
vp <- viewport(width=max(stringWidth(labels))+unit(4,”mm”),
 height=unit(length(labels),”lines”))
pushViewport(vp)
grid.roundrect()
grid.text(labels,x=unit(2,”mm”),y=unit(2:1-0.5,’lines’),just=”left”)
popViewport()


640?wx_fmt=png

4.采用裁剪的方法绘制阴影(主要思想是先绘制一个灰色矩形框,然后绘制一个在底边留下一行的相对小一点的白色矩形框)


pushViewport(viewport(width=0.25, height=0.2))
grid.roundrect(gp=gpar(fill=”grey”))
grid.clip(y=unit(1,”lines”),just=”bottom”)
grid.roundrect(gp=gpar(fill=”white”))
popViewport()


640?wx_fmt=png

5.绘制曲线

5.1根据一系列点绘制曲线


x1 <- c(0.1, 0.2, 0.2)
y1 <- c(0.2, 0.2, 0.8)
grid.xspline(x1, y1)#create a sharp corner at the control
point
x2 <- c(0.4, 0.5, 0.5)
y2 <- c(0.2, 0.2, 0.8)
grid.xspline(x2, y2, shape=-1)#draw a smooth curve through the control
point
x3 <- c(0.7, 0.8, 0.8)
y3 <- c(0.2, 0.2, 0.8)
grid.xspline(x3, y3, shape=1)#draw a smooth curve that passes nearby


640?wx_fmt=png

5.2根据起点和终点绘制曲线


x1a <- 0.1; x1b <- 0.2
y1a <- 0.2; y1b <- 0.8
grid.curve(x1a, y1a, x1b, y1b)
x2a <- 0.4; x2b <- 0.5
y2a <- 0.2; y2b <- 0.8
grid.curve(x2a, y2a, x2b, y2b,inflect=TRUE)
x3a <- 0.7; x3b <- 0.8
y3a <- 0.2; y3b <- 0.8
grid.curve(x3a, y3a, x3b, y3b,ncp=8, angle=90,square=FALSE,curvature=2,arrow=arrow(angle=15))


640?wx_fmt=png

6.绘制流程图基本图件


labels <- c(“ISBN”, “title”, “pub”)
vp <- viewport(width=max(stringWidth(labels))+unit(4,”mm”), height=unit(length(labels),”lines”))
pushViewport(vp)
grid.roundrect()
grid.clip(y=unit(1,”lines”),just=’bottom’)
grid.roundrect(gp=gpar(fill=’grey’))
grid.clip(y=unit(2,”lines”),just=”bottom”)
grid.roundrect(gp=gpar(fill=”white”))
grid.clip()
grid.text(labels,x=unit(rep(2,3),”mm”),y=unit(3:1-0.5,”lines”),just=”left”)


大家都在看

2017年R语言发展报告(国内)

精心整理 | R语言中文社区历史文章合集(作者篇)


640?wx_fmt=jpeg

公众号后台回复关键字即可学习

回复 爬虫            爬虫三大案例实战  
回复 
Python       1小时破冰入门

回复 数据挖掘     R语言入门及数据挖掘
回复 
人工智能     三个月入门人工智能
回复 数据分析师  数据分析师成长之路 
回复 机器学习      机器学习的商业应用
回复 数据科学      数据科学实战
回复 常用算法      常用数据挖掘算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值