hist(x, breaks = "Sturges",
freq = NULL, probability = !freq,
include.lowest = TRUE, right = TRUE, fuzz = 1e-7,
density = NULL, angle = 45, col = "lightgray", 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
需要进行绘制直方图的数据。
数据类型不限。一般为一维数据组
若x为数据框时,以第一列的数据来绘制直方图
breaks
直方图的分组方法,默认为“Sturges”方法,是根据数据大小来进行分组,这样可避免分组过大或过小。
除此之外,还有其他方法可供选择
- "Scott":根据Scott公式计算分组边界。Scott公式建议用于近似正态分布的数据,可以根据数据的标准差和样本大小来选择适当的组数。
- "FD":根据Freedman–Diaconis公式计算分组边界。Freedman–Diaconis公式建议用于有偏态分布或有离群值的数据,可以根据数据的四分位距和样本大小来选择适当的组数。
- 人为取某个整数值,如breaks=10 将数据分成10组
freq probability
两者都是指定绘制频数直方图还是频率直方图
freq默认值为NULL,表示绘制频数直方图
freq=TRUE时,也是绘制频数直方图
freq=FALSE时 绘制频率直方图
probability = !freq 表示freq的相反
probability=TRUE 绘制频率直方图
probability=FALSE 绘制频数直方图
include.lowest
指定是否将最小值包括在第一个组中。默认为TRUE
right
指定是否使用右闭区间作为组的边界。默认为TRUE
fuzz
`fuzz`是一个用于解决极小范围内冲突的参数。`fuzz`的默认值为`1e-7`,即(0.0000001)。
在计算直方图时,可能会出现相邻组的边界非常接近甚至相等的情况,这可能导致一些问题(例如无法正确计算频率)。`fuzz`参数的作用就是在这种情况下加入一个非常小的扰动值,以避免冲突。通过增加一个小的扰动,可以确保边界值不会完全相同,确保了直方图的准确性。通常情况下,不需要手动调整`fuzz`参数,使用默认值即可。
density 密度
用于指定阴影线的密度,以每英寸绘制的线条数为单位
默认为NULL,即不绘制阴影线
density=10 即绘制10英寸的阴影线
angle 角度
表示阴影线的角度 默认为45度
col
colour的缩写
直方图的填充颜色,默认值为"lightgray" 为浅灰色
除此之外,可自己人为指定颜色
如 col='red' 表示红色
border 边界
表示直方图的边界颜色
默认为NULL 即与col的初始颜色一样
若border=‘red’ 则边界为红色
main
直方图的标题命名
main= paste("Histogram of" , xname) paste函数表示多个字符串合并在一起
xlim ylim
分别表示x轴,y轴的取值范围
可取xlim=c(a,b) ylim=c(a,b) 表示从a到b
或者xlim=range(breaks) 表示使用数据集中的最小值和最大值来确定x轴的范围
xlab ylab
分别表示x,y轴的标签
axes
逻辑值,指定是否绘制x轴和y轴。默认为TRUE。
plot
逻辑值,指定是否绘制直方图。默认为TRUE。
labels
用于控制是否显示分组标签
默认值为FALSE,表示不显示分组标签。
如果将其设置为TRUE
,则在直方图的每个条形上显示分组标签。这在直方图中有多个分组时可以用来标识每个分组的取值范围
nclass
分组数目,默认为NULL,此时会根据数据自动选择合适的分组数目
warn.unused
是否在未使用某些参数时发出警告。默认为TRUE
下面给出一个例子
set.seed(1)
y <- rnorm(100)
hist(y,freq = F,breaks = 10,density = 10,angle = 30,col = 'red',border = 'blue',main = '宵宫',xlim = c(-2,2),ylim = c(0,1),xlab = 'xiao',ylab = 'gong',labels = T)