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

作者简介

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

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

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

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

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

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

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

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()

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()

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()

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

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))

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语言中文社区历史文章合集(作者篇)

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

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

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

R语言绘制流程图(一)相关推荐

  1. R语言绘制不一样的条形图

    绘制条形图的方法有很多,这里介绍如果用R语言绘制一个不一样的条形图 准备数据,这里为了方便,我们使用已经存在于gcookbook包中的一个数据集 首先需要调用该包,如果该包不存在,可以使用下面的方式安 ...

  2. R语言绘制生存曲线图

    R语言绘制生存曲线图 KMunicate是支持按照Morris等人的KMunicate研究推荐的方式生成Kaplan-Meier图. 1958年,Edward L. Kaplan 和Paul Meie ...

  3. R语言绘制Bump Chart

    R语言绘制Bump Chart的小示例 # install.packages("tidyverse") # install.packages("ggbump") ...

  4. R语言绘制环形树状图

    R语言绘制环形树状图 1.主要用到dendextend和circlize包绘图: library(dendextend) library(circlize)# 距离矩阵 d <- dist(US ...

  5. R语言绘制二维密度图

    R语言绘制二维密度图 二维密度图显示了两个数值变量之间的关系,一个在x轴上表示,另一个在Y轴上表示,与散点图类似,然后计算二维空间中特定区域内的观测数,并用颜色梯度表示.二维密度图有几种类型,以下主要 ...

  6. R语言绘制带聚类树的堆叠柱形图

    R语言绘制带聚类树的堆叠柱形图 聚类树与柱形图结合,即可反映样本或分组间的相似性,又能展示样本内的元素组成信息. 例如下图是一个在扩增子测序微生物群落分析中常见的统计图类型,在测序公司给的报告中通常都 ...

  7. R语言绘制线图(line)实战

    R语言绘制线图(line)实战 目录 R语言绘制线图(line)实战 #仿真数据 #基础线图

  8. R语言绘制空白图实战

    R语言绘制空白图实战 目录 R语言绘制空白图实战 #绘制空白图1 #绘制空白图2 #绘制空白图3

  9. R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色、基于显著性阈值进行点的颜色美化、为选定基因添加标签

    R语言绘制火山图(volcano plot)实战:为差异表达基因(DEGs)添加颜色.基于显著性阈值进行点的颜色美化.为选定基因添加标签 目录 R语言绘制火山图(volcano plot)实战 #导入 ...

  10. R语言绘制核密度图实战(Kernel Density Plot)

    R语言绘制核密度图实战(Kernel Density Plot) 目录 R语言绘制核密度图实战(Kernel Density Plot) #仿真数据

最新文章

  1. 【另类见解】秒杀并非高不可攀
  2. 国防科大 linux教程,国防科大《嵌入式系统》肖侬视频教程
  3. 诊断Java中的内存泄露
  4. vue 强制刷新组件
  5. 自动升级失败,缺少System.resources.dll?
  6. 计算机怎么取消脱敏设置,一种敏感数据自适应的脱敏方法、系统技术方案
  7. Servlet 运行原理
  8. Java ProcessBuilder environment()方法与示例
  9. python word模板 图_科学网—Python绘制可插入Word的高清矢量图(SVG转EMF) - 任晓东的博文...
  10. mysql 截取 效率,MySQL 随机函数获取数据速度和效率分析
  11. 网站搭建 (第03天) 分页功能
  12. .htaccess 语法以及应用
  13. iOS crash dSYM
  14. oracle清空回收站指定表,oracle 删除表结构及清空回收站
  15. 问道服务器etc修改教程,常用的修改etc对照表-详细版
  16. 小牛的net程序开发之路
  17. 复旦提出M2TR:首个多模态多尺度Transformer
  18. 关于爬网易云音乐时使用fiddler调试JS遇到的问题?
  19. 4G 工业路由器并入cisco专网
  20. [计算机图形学入门]9.几何

热门文章

  1. YAML 有漏洞被弃用?网友:YAML 不背锅!
  2. 5 分钟掌握智联招聘网站爬取并保存到 MongoDB 数据库
  3. 这几个问题解决了,怎么设计大型网站架构不再是困难
  4. 湖北经济学院计算机专业全国排名,2018年湖北经济学院世界排名、中国排名、专业排名...
  5. python答疑的作用_python课程答疑
  6. 高并发架构系列:Kafka、RocketMQ、RabbitMQ的优劣势比较
  7. 1.2 SQL注入原理-手工联合查询
  8. Java虚拟机工作原理详解 (一)
  9. [C++] socket - 4 [线程同步 简单例子]
  10. 对象池 IObjectPool -- ESBasic 可复用的.NET类库(15)