频率条上带标签的因子直方图

时间:2013-10-17 03:30:02

标签: r plot histogram

通常,如果我需要使用标签制作直方图,我将使用hist(rnorm(100),labels=TRUE)。但是,如果我的数据是因素,那么我需要使用plot(as.factor(c("a","a","b")))。这个问题是labels=TRUE无法与plot一起使用; 如何解决此问题?

我最好想要一个解决方案,而无需加载花哨的包。

1 个答案:

答案 0 :(得分:2)

您实际上是在第二个示例中创建条形图

以下内容可行

 # your variable
 fact <- as.factor(c('a','a','b'))
 # 
 b <- plot(fact)
 text(x=b,y=c(table(fact)), label = c(table(fact)),xpd=TRUE,col='blue')

enter image description here

您可以将其包装为函数plot.factor

plot.factor <- function(x ,..., label=TRUE) { 

  cc <- table(x)
  b <- barplot(cc,...)
  if (label){
    text(x = b, y = c(cc), label = c(cc), xpd = TRUE, col = 'blue')
  } 
return(invisible(b))
}


# Then

plot(fact) 
# would produce the same result