• R语言低级绘图函数-symbols


    严格意义上将symbols 并不能算是一个低级的绘图函数,因为它不仅可以在一幅已经存在的图标上添加元素,还可以创建一张新的图表

    鉴于它绘图时的灵活性,我把它归入到低级绘图函数中

    symbols 可以创建包括圆形, 正方形,矩形,箱线图,类似温度计的图形在内的多种图形

    基本用法:

    通过x和y坐标指定要创建的图形的中心,对于不同的形状,设置对应的参数

    需要注意的是,图形的大小默认使用的单位是inches, 为了和坐标系中的坐标保持一致,可以通过inches = FALSE 将对应的参数和坐标系保持一致

    add = TRUE 运行symbols 函数作为一个低级绘图函数来使用,在一张图表上添加对应的图形

    圆形:对于圆形来说,通过控制半径来控制其大小

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 1:5, y = 1:5, circles = rep(1, 5), inches = FALSE, add = TRUE)

    效果图如下:

    正方形:对于正方形来说,设置的参数是正方形边长的1/2

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 1:5, y = 1:5, squares = rep(2, 5), inches = FALSE, add = TRUE)

    效果图如下:

    矩形: 通过一个两列的矩阵来控制大小,第一列为宽度,第二列为长度

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = c(1, 4), y = c(3, 4), rectangles = matrix(c(2, 3, 3, 2), byrow = T, nrow = 2), inches = FALSE, add = TRUE)

    效果图如下:

    stars : 多边形,指定多边形的中心到各条边的距离,对于不同边数的多边形来说,对应的矩阵列数不同

    代码示例:

    par(oma = c(1, 1, 1, 1), mfrow = c(1, 3))
    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = c(1, 4), y = c(3, 4), stars = matrix(rep(1, 6), ncol = 3), inches = FALSE, add = TRUE)
    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = c(1, 4), y = c(3, 4), stars = matrix(rep(1, 8), ncol = 4), inches = FALSE, add = TRUE)
    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = c(1, 4), y = c(3, 4), stars = matrix(rep(1, 10), ncol = 5), inches = FALSE, add = TRUE)

    效果图如下:

    温度计图案:通过一个列数为3或者4的矩阵来控制其大小,前两列对应图形的宽度和长度,如果矩阵只有3列,第3列是一个百分比,在该百分比对应的高度,会有填充色;如果矩阵有第4列,则在第3列和第4列对应的百分比之间会有一个填充色

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 2, y = 3, thermometers = matrix(c(1, 3, 0.5), ncol = 3), inches = FALSE, add = TRUE)
    symbols(x = 4, y = 4, thermometers = matrix(c(1, 3, 0.2, 0.8), ncol = 4), inches = FALSE, add = TRUE) 

    效果图如下:

     

    箱线图:通过一个列数为5的矩阵进行控制,前两列分别对应宽度和高度, 第三列和第四列对应箱线图的下限和上限,第五列为一个0到1之间的数,控制代表中位数的直线所处的位置

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 3, y = 3, boxplots = matrix(c(1, 3, 0.5, 0.5, 0.4), ncol = 5), inches = FALSE, add = TRUE)

    效果图如下:

    fg : 设置图形边框的颜色

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 3, y = 3, boxplots = matrix(c(1, 3, 0.5, 0.5, 0.4), ncol = 5), inches = FALSE, add = TRUE, fg = "red")

    效果图如下:

    bg: 设置图形的填充色

    代码示例:

    plot(1:5, 1:5, type = "n", xlim = c(0, 6), ylim = c(0, 6))
    symbols(x = 3, y = 3, boxplots = matrix(c(1, 3, 0.5, 0.5, 0.4), ncol = 5), inches = FALSE, add = TRUE, bg = "red")

    效果图如下:

    以上的用法都是通过add = TRUE , 将symbols 函数的输出添加到一个图形上,当add = FALSE 时,symbol 函数可以创建一张新的图表

    除了前面的通用参数外,在创建新图表时,还有一些额外的参数

    xlim, ylim  : 设置新图表x轴和y轴的范围

    代码示例:

    symbols(x = 3, y = 3, boxplots = matrix(c(1, 3, 0.5, 0.5, 0.4), ncol = 5), inches = FALSE, xlim = c(0, 6), ylim = c(0, 6))

    效果图如下:

    xlab, ylab , main : 分别设置新图表的x轴标签,y轴标签,标题

    代码示例:

    symbols(x = 3, y = 3, boxplots = matrix(c(1, 3, 0.5, 0.5, 0.4), ncol = 5), inches = FALSE, xlim = c(0, 6), ylim = c(0, 6),xlab = "x lab", ylab = "y lab", main = "title") 

    效果图如下:

  • 相关阅读:
    在vue.js中mixin和页面执行顺序问题
    【转载】Node.js 教程(菜鸟教程系列)
    【转载】一致性hash算法释义
    多线程还是多进程的选择及区别
    腾讯
    gdb命令与调试方法
    面试题56:链表中环的入口节点
    面试题52:缺少i的乘积数组
    UML类图
    面试题51:数组中重复的数字
  • 原文地址:https://www.cnblogs.com/xudongliang/p/6773127.html
Copyright © 2020-2023  润新知