如何使用R?
中的hist()函数绘制百分比而不是原始频率答案 0 :(得分:80)
简单地使用freq=FALSE
参数不会给出百分比的直方图,它会对直方图进行标准化,因此总面积等于1。
要获得某些数据集的百分比直方图,比如x,请执行:
h = hist(x) # or hist(x,plot=FALSE) to avoid the plot of the histogram
h$density = h$counts/sum(h$counts)*100
plot(h,freq=FALSE)
基本上你正在做的是创建一个直方图对象,将密度属性改为百分比,然后重新绘图。
答案 1 :(得分:4)
如果你想明确列出x轴上x
的每一个值(即绘制一个整数变量的百分比,如计数),那么以下命令是一个更方便的选择:
# Make up some data
set.seed(1)
x <- rgeom(100, 0.2)
# One barplot command to get histogram of x
barplot(height = table(factor(x, levels=min(x):max(x)))/length(x),
ylab = "proportion",
xlab = "values",
main = "histogram of x (proportions)")
# Comparison to hist() function
h = hist(x, breaks=(min(x)-1):(max(x))+0.5)
h$density = h$counts/sum(h$counts)*100
plot(h,freq=FALSE, main = "histogram of x (proportions)")