如何使用 ggplot2为 R 中的每个 bar 在 geom_bar 上放置标签

我已经找到了这个,如何使用 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))

然后,我们会得到: enter image description here

It seems that the number texts are also positioned in the "dodge" pattern. 我已经搜索了 Geom _ text 手册以找到一些信息,但无法使其工作。

有什么建议吗?

163809 次浏览

试试这个:

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 output

为了给 rcs 的答案添加内容,如果要在 x 是 POSIX.ct 日期时使用 position _ dge ()和 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)