如何在R中将密度表达为百分比?

3
当我在R中运行密度直方图时,垂直轴以密度为分数显示。例如,请尝试: hist(rnorm(100), freq = FALSE) 请注意,垂直轴显示“0.0”、“0.1”、“0.2”等。如何使其显示“0%”、“1%”、“2%”等呢?
2个回答

3
像这样吗?
x <- rnorm(100)
par(mfrow = c(1, 2))
hist(x, freq = FALSE, axes = FALSE)
axis(2, at = seq(0, 0.4, 0.1), labels = paste(0:4, "%", sep = ""))
hist(x, freq = FALSE)

enter image description here


1
不要在`hist`中绘制垂直轴。通过`axis`自己添加它。
h <- hist(rnorm(100))
plot(h, freq=FALSE, yaxt="n")
axis(2, pretty(h$density), sprintf("%0.0f%%", pretty(h$density)*100))

然而,这是非常误导人的,因为密度并不等同于某物的百分比或比例。如果你要做类似的事情

hist(rnorm(100, s=0.1))

你得到相同的分布,但现在所有密度的数量级都增加了10倍,因为分布的尺度缩小了10倍。
最好绘制纵轴上带有百分比的累积频率多边形或直方图。

你说得对,密度和百分比不是同一回事。但在我的实际情况中,我将强制使用宽度为1的间隔,因此重新标记y轴为“百分比”不会有问题。感谢您的贡献! - Waldir Leoncio
@WaldirLeoncio:根据密度计算的方式,仍可能存在问题。 - russellpierce

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接