R语言绘制流程图(二)
作者简介
作者:吴健 中国科学院大学 R语言、统计学爱好者,尤其擅长R语言和Arcgis在生态领域的应用分享
个人公众号:统计与编程语言
上一期我们已经对R语言绘制基本矩形框,文本和线条进行了介绍,本文将在上一期的基础上,通过自编函数快速绘制流程图。
步:自定义绘制基本矩形和文本的函数。利用该函数可以快速的根据字段的长度和宽度绘制相应的矩形框,该矩形框为流程图的基本图元。
tableBox <- function(labels, x=0.5, y=0.5) {
nlabel <- length(labels)#确定标签个数
taplevp <- viewport(x=x, y=y, width=max(stringWidth(labels))+ unit(4, "mm"),
height=unit(nlabel, "lines"))#根据标签的多少绘制矩形框
pushViewport(taplevp)
grid.roundrect()
if (nlabel > 1) {
for (i in 1:(nlabel-1)) {
fill <- c("white", "grey")[i%%2+1]
grid.clip(y=unit(i, "lines"), just="bottom")
grid.roundrect(gp=gpar(fill=fill))
}
}
grid.clip()#绘制灰色阴影
grid.text(labels, x=unit(2, "mm"), y=unit(nlabel:1-0.5, 'lines'),just='left')#添加文本
popViewport()
}
相关文章