eip*_*i10 20 graphics r histogram
我想用直方图中的每个条形标记该区域中的计数数量或该区域中总计数的百分比.我敢肯定必须有办法做到这一点,但我找不到它.这个页面有几张SAS直方图的照片,基本上我正在尝试做的事情(但该网站似乎没有R版本):http://www.ats.ucla.edu/stat/sas/常见问题/ histogram_anno.htm
如果可能的话,根据需要,可以灵活地将标签放在条形图的上方或某处.
我正在尝试使用基本R绘图工具,但我对ggplot2和格子中的方法感兴趣.
Jos*_*ien 36
要包括计数数量,您可以设置labels=TRUE
.
以下示例仅略微改编自hist()
帮助页面上的示例 :
hist(islands, col="gray", labels = TRUE, ylim=c(0, 45))
Run Code Online (Sandbox Code Playgroud)
获得百分比涉及更多.我知道这样做的唯一方法是直接操作调用返回的对象hist()
,如我对这个类似问题的回答中的更详细描述:
histPercent <- function(x, ...) {
H <- hist(x, plot = FALSE)
H$density <- with(H, 100 * density* diff(breaks)[1])
labs <- paste(round(H$density), "%", sep="")
plot(H, freq = FALSE, labels = labs, ylim=c(0, 1.08*max(H$density)),...)
}
histPercent(islands, col="gray")
Run Code Online (Sandbox Code Playgroud)
在条形图或直方图中在条形顶部添加数字会扭曲条形图的视觉解释,即使将标签放在靠近顶部的条形图内部也会产生模糊的顶部效果,使观看者更难以正确地解释图形.如果这个数字是有意义的,那么这会创建一个布局不佳的表,为什么不创建一个合适的表.
如果您确实需要添加数字,那么最好将它们放在条形下方或沿着上边距,以便它们排列更好以便于比较,并且不会干扰图形的可视解释.可以使用text
或mtext
函数将标签添加到基本图形中,并且可以在hist
函数的返回值中找到x位置.可以使用grconvertY
函数计算绘图高度.