直方图(Histogram)又称柱状图,是一种统计报告图,由一系列高度不等的纵条纹或线段表示的数据分布情况。可以使用直方图估计数据的概率分布情况。
在R语言中,可以使用hist()函数来绘制直方图。
1. 基本用法
# 自动按若干区间计算x在每一区间的数量并给出柱状图
x <- seq(1,10)
hist(x)
x <-rnorm(100)
hist(x)
2. 条形框的顶端给出标签
scores <- c(82,67,98,93,76,72,69,88,82,94,91,51,47)
hist(scores,label=TRUE)
3. 加颜色
scores <- c(82,67,98,93,76,72,69,88,82,94,91,51,47)
hist(scores,col="red")
3. 加边框颜色
Height<-c(144,166,163,143,152,169,130,159,160,175,159,150,183,165,146,169)
hist(Height,col="lightblue",border="red",labels=TRUE,ylim=c(0,7.2))
4. 加阴影线
Height<-c(144,166,163,143,152,159,160,175,161,170,146,159,150,183,165,146,169)
hist(Height,breaks=12,freq=FALSE,density=10,angle=60,col="blue")
5. 自定义区间
scores <- c(82,67,98,93,76,72,69,88,82,94,91,51,47)
#breaks定义的区间要能覆盖score的范围
hist(scores,breaks=c(40,60,80,100),label=TRUE)
6. 添加轴须图及概率密度线
hist(mtcars$mpg,breaks = 12,col="blue",
xlab = "Miles Per Gallon",
main = "Colored histogram with 12 bins",freq = FALSE)
#添加轴须图
rug(jitter(mtcars$mpg))
#density()核密度函数给定一个向量可以生成一个核密度估计
lines(density(mtcars$mpg),col="red",lwd=2)
hist函数主要参数的含义如下:
(1)x
向量,直方图所用到的数据。
(2)breaks
直方图的断点,主要有以下几种情况:
①可以是一个向量给出直方图中每个区间的断点;
②可以是一个函数用于计算每个断点的向量;
③用于表示区间数的一个数字;
④一个字符串用于给出计算区间数所使用的算法;
⑤一个用于计算区间数的函数。
(3)freq
逻辑变量,如果设置为TRUE,则直方图的数据为频数,若为FALSE,则为概率密度。
当仅当breaks为等距,且为指定probability时,freq默认为TRUE。
(4)probability
与!freq的含义相同。
(5)include.lowest
逻辑值,如果为TRUE,则如果数据x[i]等于断点值,则会包含在第一个区间条中(如right参数为FALSE,则会包含在下一个区间中)。除非breaks是向量,否则设置会被忽略并给出一个警告错误。
(6) right
逻辑值。如果设置为TRUE,则直方图条右侧区间是封闭的(左侧开放)。
(7)density
指阴影线的密度,即每英寸(2.54厘米)的线数。默认值为NULL值,意味着没有阴影线。非正值也不会绘制阴影线。
(8)angle
指阴影线的斜度,以逆时针角度给出。默认为45度。
(9)col
填充条形使用的颜色。默认值为NULL,即没有填充色。
(10)border
数字或字符串,用于描述条形边框的颜色。默认为NULL,即使用标准前景色。
(11)main, xlim, ylim, xlab, ylab
同plot函数。
(12)axes
逻辑值。默认为TRUE,绘图时绘制轴。
(13)labels
逻辑值。默认为FALSE,如果为TRUE,则在条形框的顶端给出标签(频数或密度)。