R语言绘制频数、频率分布直方图

R语言绘制频数、频率分布直方图

R语言中hist函数 可用于绘制直方图,具体用法如下:

n<-round(runif(1000,0,100))  #生成0到100的1000个随机数 
hist(n)      #频数分布直方图,纵坐标名字为frequency

attachments-2018-12-dkE2jGfQ5c1c763675a47.jpg

hist(n,freq = F)   #频率分布直方图,纵坐标名字为density


attachments-2018-12-2KJVFRkH5c1c7646a4257.jpg

选项设置:

(1)break 设置断点,有两种方式:

第一种: 指定一个向量,给出不同的断点

代码如下:

n<-round(runif(1000,0,100))
hist(n, breaks = c(0,25, 50, 75,100))

attachments-2018-12-nyqi8unp5c1c779f87d8d.jpg

第二种:指定分隔好的区间的个数,会根据区间个数自动去计算区间的大小

代码如下:

n<-round(runif(1000,0,100))
hist(n, breaks = 8)

attachments-2018-12-XEB0q9Fl5c1c78a492646.jpg

(2)freq: 逻辑值,默认值为TRUE , y轴显示的是每个区间内的频数,FALSE, 代表显示的是频率(= 频数/ 总数)

如文章开头所示,这里不再演示。

(3)labels: 显示在每个柱子上方的标签

代码示例:

hist(n, breaks = c(0,25, 50, 75,100), labels = c("A", "B", "C", "D"))

attachments-2018-12-sH3uEi1C5c1c79b0104e5.jpg

(4)col : 柱子的填充色

代码示例:

hist(n, breaks = c(0,25, 50, 75,100), col = "pink")
hist(n, breaks = c(0,25, 50, 75,100), col = rainbow(4))

attachments-2018-12-czUvgryt5c1c7a2287e86.jpgattachments-2018-12-ZbiRu3Se5c1c7a517e1d9.jpg

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

代码示例:

hist(n, breaks = c(0,25, 50, 75,100), col = rainbow(4), border = NA)

attachments-2018-12-ruKaQegL5c1c7aadaf39f.jpg

最后介绍一下hist函数的返回值

n<-round(runif(1000,0,100))
a <- hist(n, breaks = c(0,25, 50, 75,100), col = rainbow(4), border = NA)
a
$breaks
[1]   0  25  50  75 100
$counts
[1] 269 243 249 239
$density
[1] 0.01076 0.00972 0.00996 0.00956
$mids
[1] 12.5 37.5 62.5 87.5
$xname
[1] "n"
$equidist
[1] TRUE
attr(,"class")
[1] "histogram"


从代码中的结果可以看到,返回值是一个 histogram 类型的对象, 其中breaks 是分隔的区间,counts 是每个区间的频数,density是每个区间的频率,mids 是每个柱子的中心点;  利用返回值,我们可以用hist函数统计一串数据在不同区间的频数分布

更多R语言绘图 将学习  R语言快速入门与提高

  • 发表于 2018-12-21 13:36
  • 阅读 ( 35226 )
  • 分类:R

0 条评论

请先 登录 后评论
安生水
安生水

328 篇文章

作家榜 »

  1. omicsgene 658 文章
  2. 安生水 328 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. 红橙子 78 文章
  6. CORNERSTONE 72 文章
  7. xun 68 文章
  8. rzx 67 文章