breaks接收的可以是单个的数值,也可以是向量,当接收的是单个数值时表示间隔点的个数,当接收的是间隔点的值。
freq是接收的是True和False,当freq=True时,纵轴是频数,当freq=False时,纵轴是密度,当freq缺省时,当且仅当breaks是等距的,freq取True。
举例:
chara是包含了1500部小说的总字数数据的向量,单位为万,对这个数据绘制直方图,观察不同总字数的小说的频数。
hist(chara, breaks = 9, xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")
这里取9个间隔点,分别为:0,100,200,300,400,500,600,700,800
此时breaks是等距的,freq缺省,所以纵轴为频数。
hist(chara, breaks = c(0,200,300,400,800), xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")
这里设置的间隔点为:0,200,300,400,800
此时breaks不是等距的,freq缺省,所以纵轴是密度。
hist(chara, breaks = function(x) length(x)/50, xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")
此时break后的函数得到的是一个数值,所以与前面取单个数值的情况相同,这里的函数值代表间隔点个数。
可以给freq取F使纵轴变为密度:
hist(chara, breaks = function(x) length(x)/50,freq = F, xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")
hist(chara, breaks = function(x) c(0:ceiling(max(x))), xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")
breaks后函数的取值为一个向量,所以和breaks后取向量的情况相同,向量代表间隔点的值。
这里的每隔1取一个间隔点。
也可以做间隔100取一个间隔点:
hist(chara, breaks = function(x) seq(0,(floor(max(x)/100)+1)*100,100), xlab = "总字数(万字)", ylab = "频数", main = "", col = "lightblue")