美文网首页R语言学习
R010 基本图形-直方图hist()

R010 基本图形-直方图hist()

作者: caoqiansheng | 来源:发表于2020-08-13 00:00 被阅读0次

    直方图通过在x轴上将值域分割为一定数量的组,在y轴上显示相应值的频数,展示了连续型变量的分布。可以使用hist()函数创建直方图

    hist()用法

    hist(x, breaks = "Sturges",freq = NULL, probability = !freq, include.lowest = TRUE, right = TRUE,
    density = NULL, angle = 45, col = NULL, border = NULL,main = paste("Histogram of" , xname),
    xlim = range(breaks), ylim = NULL,xlab = xname, ylab,axes = TRUE, plot = TRUE, labels = FALSE,
    nclass = NULL, warn.unused = TRUE, ...)

    主要参数的含义如下

    参数 用途
    x 向量,直方图所用到的数据。
    breaks 直方图的断点,用来表示分组的个数,主要有以下几种情况:①可以是一个向量给出直方图中每个区间的断点;②可以是一个函数用于计算每个断点的向量;③用于表示区间数的一个数字;④一个字符串用于给出计算区间数所使用的算法;⑤一个用于计算区间数的函数。
    freq 逻辑变量,如果设置为TRUE,则直方图的数据为频数,若为FALSE,则为概率密度。当仅当breaks为等距,且为指定probability时,freq默认为TRUE。
    probability 与!freq的含义相同。
    include.lowest 逻辑值,如果为TRUE,则如果数据x[i]等于断点值,则会包含在第一个区间条中(如right参数为FALSE,则会包含在下一个区间中)。除非breaks是向量,否则设置会被忽略并给出一个警告错误。
    right 逻辑值。如果设置为TRUE,则直方图条右侧区间是封闭的(左侧开放)。
    density 指阴影线的密度,即每英寸(2.54厘米)的线数。默认值为NULL值,意味着没有阴影线。非正值也不会绘制阴影线。
    angle 指阴影线的斜度,以逆时针角度给出。默认为45度。
    col 填充条形使用的颜色。默认值为NULL,即没有填充色。
    border 数字或字符串,用于描述条形边框的颜色。默认为NULL,即使用标准前景色。
    main, xlim, ylim, xlab, ylab 同plot函数
    axes 逻辑值。默认为TRUE,绘图时绘制轴。
    labels 逻辑值。默认为FALSE,如果为TRUE,则在条形框的顶端给出标签(频数或密度)。

    hist()示例

    ## 输出2行2列的组合图形
    par(mfrow=c(2,2))
    hist(mtcars$mpg)
    ## breaks=12,分为12组
    hist(mtcars$mpg,
         breaks = 12,
         col="red",
         xlab="Miles Per Gallon",
         main="Colored histogram with 12 bins")
    ## freq=FALSE,根据概率密度而非频数进行绘图
    hist(mtcars$mpg,
         freq=FALSE,
         breaks = 12,
         col="red",
         xlab="Miles Per Gallon",
         main="Histogram,rug plot,density curve")
    ##  轴须图rug plot是实际数据的一维呈现方式,数据点多的地方较粗,而jitter函数可以给数据点添加一个小的随机值,避免因太多重合数据点产生影响
    rug(jitter(mtcars$mpg))
    ## 添加密度曲线
    lines(density(mtcars$mpg),col="blue",lwd=2)
    
    x <- mtcars$mpg
    h <- hist(x,
              breaks = 12,
              col="red",
              xlab="Miles Per Gallon",
              main="Histogram with normal curve and box")
    ## 函数seq(x1,x2,n),从x1开始到x2,每间隔n取一个数,等差数列
    xfit <- seq(min(x),max(x),length=40)
    yfit <- dnorm(xfit,mean=mean(x),sd=sd(x))
    yfit <- yfit*diff(h$mids[1:2])*length(x)
    lines(xfit,yfit,col="blue",lwd=2)
    ## 给图表添加边框
    box()
    
    
    image.png

    相关文章

      网友评论

        本文标题:R010 基本图形-直方图hist()

        本文链接:https://www.haomeiwen.com/subject/etosdktx.html