zoukankan      html  css  js  c++  java
  • R语言barplot绘图函数

    barplot 函数用于绘制柱状图,下面对其常用的参数进行一个详细的解释:

    1)height : 高度,通过这个参数可以指定要画多少个柱子以及每个柱子的高度,其值有两种格式,

    第一种 :向量 vector, 此时会根据向量的长度确定图中有多少个柱子,向量中的每个值就是柱子的高度

    代码示例:

    barplot(height = 1:10)

    效果图如下:

    从图中可以看出,共有10个柱子,柱子的高度为1到10,和height 参数的向量保持一致;

    第二种:矩阵,matrix, 此时用于画堆积柱状图

    代码示例:

    data <- cbind(a = 1:4, b = 1:4)
    barplot(data)

    效果图如下:

    从图中可以看出,输入的矩阵data一共有a和b两列,所以图中只有两个柱子,矩阵有4行,所以在每个柱子又由4个小的柱子堆积起来,所以矩阵常用来绘制堆积柱状图

    需要注意的是,当输入参数为矩阵时,默认是堆积柱状图,这种默认行为其实是通过 beside 参数进行控制,beside 默认值为 FALSE, 当为TRUE 时,我们看下效果:

    代码示例:

    data <- cbind(a = 1:4, b = 1:4)
    barplot(data, beside = T)

    效果图如下:

    从图中可以看到,当设置besdie = TRUE 时,原本堆积在一起的柱子现在变成并列的了;

    2) 宽度,控制每个柱子的宽度,默认值为1,值得注意的是,这个参数的值是可以循环使用的,当我们只设置一个值时,会自动循环,生成长度和柱子数目相同的向量,效果就是所有柱子的宽度是一样的,其实也可以指定多个值,使每个柱子的长度不一样

    代码示例:

    barplot(1:5, width = 5:1)

    效果图如下:

    3)space:间隔,指定每个柱子左边的空白区域的宽度,这个值为一个百分比,默认值为0.2, 实际的间隔 = 0.2 * 1(所有柱子的平均宽度) = 0.2; 这个参数的值和width 参数类似,可以只设置一个值,也可以指定不同的柱子间隔不同;

    代码示例:

    barplot(1:3, space = c(0.1, 0.2, 0.3))

    效果图如下:

    4)names.arg : 每个柱子下面的标记,当height 为 vector 时,默认的标记为向量的names 属性, 当height 为 matrix 是,默认为 matrix 的colnames 属性

    代码示例:

    par(mfrow = c(1, 2))
    height <- c(1:3)
    names(height) <- c("A", "B", "C")
    barplot(height)
    
    data <- cbind("A" = 1:4, "B" = 1:4)
    barplot(data)

    效果图如下:

    上面的默认用法,names.arg 参数的主要用途是当输入的height 缺少对应的属性时,自己手工赋值,或者对已有的属性不满意,重新赋值

    代码示例:

    par(mfrow = c(1, 2))
    height <- c(1:3)
    names(height) <- c("A", "B", "C")
    barplot(height, names.arg = c("A1", "A2", "A3"))
    
    data <- cbind("A" = 1:4, "B" = 1:4)
    barplot(data, names.arg = c("D", "E"))

    效果图如下:

    5) legned.text : 图例的文字说明, 只有当height参数的值是matrix 时,才起作用,默认显示的是matrix的rownames 属性,其值有两种指定形式,

    第一种:逻辑值,是否需要显示图例,默认为FALSE

    代码示例:

    data <- cbind(a = 1:4, b = 1:4)
    rownames(data) <- c("A", "B", "C", "D")
    barplot(data, legend.text = TRUE)

    效果图如下:

    第二种, 指定图例中的文字内容,相当于修改了matrix的 rownames 属性

    代码示例:

    data <- cbind(a = 1:4, b = 1:4)
    rownames(data) <- c("A", "B", "C", "D")
    barplot(data, legend.text = c("E", "F", "G", "H"))

    效果图如下:

    从上面两张图可以看出来,虽然可以通过这种方式显示图例,但是图里的位置都是固定在了右上角,会出现和柱子重叠的情况,最佳的显示办法还是单独调用legend 函数,添加图例;

    6)beside: 之前提到过的,控制group bar的排列方式, 默认FALSE, 堆积排列,TRUE 代表水平排列

    代码示例:

    par(mfrow = c(1, 2))
    data <- cbind(a = 1:4, b = 1:4)
    barplot(data, main = "beside = F")
    barplot(data, beside = T, main = "beside = T")

    效果图如下:

    7) horiz : 逻辑值,默认FALSE , 当值为TRUE 时,将x轴和y轴转置;

    代码示例:

    par(mfrow = c(1, 2))
    barplot(1:4, main = "horiz = F")
    barplot(1:4, main = "horiz = T", horiz =T)

    效果图如下:

    8)col : 柱子的填充色,默认为灰色

    代码示例:

    barplot(1:4, col = "green")

    效果图如下:

    除了设置col参数的值为一个外,还支持不同的柱子设置不同的颜色

    代码示例:

    barplot(1:4, col = rainbow(4))

    效果图如下:

    9) border : 柱子边框的颜色, 默认为 black, 当border = NA时,表示没有边框

    代码示例:

    barplot(1:4, col = rainbow(4), border = NA, main = "border = NA")

    效果图如下:

     10)density 和 angle : 设置柱子用线条填充,density 控制线条的密度, angel 控制线条的角度

    代码示例:density 控制线条的密度

    par(mfrow = c(1, 3))
    barplot(rep(1,4), density = 1, main = "density = 1")
    barplot(rep(1,4), density = 2, main = "density = 2")
    barplot(rep(1,4), density = 3, main = "density = 3")

    效果图如下:

    代码示例:angle 控制线条的角度, 必须和density 参数搭配使用才能发挥作用

    par(mfrow = c(1, 3))
    barplot(rep(1,4), density = 2, angle = 45,  main  = "angle = 45")
    barplot(rep(1,4), density = 2, angle = 90,  main  = "angle = 90")
    barplot(rep(1,4), density = 2, angle = 180, main  = "angle = 180") 

    效果图如下:

    11)axes :逻辑值,控制是否显示轴线

    代码示例:

    par(mfrow = c(1, 2))
    data <- cbind(a = 1:4, b = 1:4)
    barplot(data, axes = F, main = "axes = F")
    barplot(data, axes = T, main = "axes = T")

    效果图如下:

    12)axisnames : 控制是否显示柱子的标签

    代码示例:

    par(mfrow = c(1, 2))
    data <- cbind(a = 1:4, b = 1:4)
    barplot(data, axisnames = F, main = "axisnames = F")
    barplot(data, axisnames = T, main = "axisnames = T")

     效果图如下:

     13)offset : 设置柱子的起始位置在y轴上的位置, 默认值为0

    代码示例:

    par(mfrow = c(1, 3))
    data <- cbind(a = 1:4, b = 1:4)
    barplot(data, offset = 0, main = "offset = 0")
    barplot(data, offset = 1, main = "offset = 1")
    barplot(data, offset = 2, main = "offset = 2")

    效果图如下:

  • 相关阅读:
    网页结构树DOM
    网页设计之js
    css了解一下!!!
    Html !!!了解一下
    进程and线程and协程效率对比
    线程
    进程之生产者消费者模型(队列,管道,数据共享,进程池)
    进程之机制问题(锁,信号,事件)
    并发进程
    socket模块其他用法
  • 原文地址:https://www.cnblogs.com/xudongliang/p/6912474.html
Copyright © 2011-2022 走看看