R语言绘制流程图(二)

2020-06-16 00:00:00 函数 语言 专区 绘制 矩形框
作者简介

作者:吴健 中国科学院大学 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()

}

相关文章