112

我发现了这个,如何使用 ggplot2 在 R 中的 geom_bar 上放置标签,但它只是将标签(数字)放在一个条上。

假设每个 x 轴有两个条形图,如何做同样的事情?

我的数据和代码如下所示:

dat <- read.table(text = "sample Types Number
sample1 A   3641
sample2 A   3119
sample1 B   15815
sample2 B   12334
sample1 C   2706
sample2 C   3147", header=TRUE)

library(ggplot2)
bar <- ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
  geom_bar(position = 'dodge') + geom_text(aes(label=Number))

然后,我们会得到: 在此处输入图像描述

似乎数字文本也位于“闪避”模式中。我搜索了 geom_text 手册以查找一些信息,但无法使其正常工作。

建议?

4

2 回答 2

169

试试这个:

ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
     geom_bar(position = 'dodge', stat='identity') +
     geom_text(aes(label=Number), position=position_dodge(width=0.9), vjust=-0.25)

ggplot 输出

于 2012-08-18T15:02:01.197 回答
5

要添加到 rcs 的答案,如果要在 x 是 POSIX.ct 日期时将 position_dodge() 与 geom_bar() 一起使用,则必须将宽度乘以 86400,例如,

ggplot(data=dat, aes(x=Types, y=Number, fill=sample)) + 
 geom_bar(position = "dodge", stat = 'identity') +
 geom_text(aes(label=Number), position=position_dodge(width=0.9*86400), vjust=-0.25)
于 2015-07-17T00:57:47.823 回答