我正在尝试将标签添加到r中的分组条形图中。 但是,我在y轴上使用percentege,我希望对标签进行计数。 我曾尝试使用geom_text()函数,但我没有多么需要使用这些参数。
key value
A Before
A After
A During
B Before
B Before
C After
D During
...
这是我需要它的一个例子:
这是我正在使用的数据示例:
data<-data.frame(x=rep(c("man", "woman"),500),reg=rep(1:5, 200), v=c(seq(100,1,length.out = 500),c(seq(1,100,length.out = 500))))
for (i in seq(0, 100, 10)) {
print(paste("interval <", i, "-", i+10,">"))
data %>%
filter(data$x == "man" & data$v >= i & data$v <= i +10) %>%
group_by(Region = reg) %>%
summarize(No_man = n()) %>%
as.data.frame() %>%
print()
if (i+10 > 90) {break}
}
我还希望保留没有值的小节(标签= 0)。
有人可以帮我吗?
答案 0 :(得分:1)
这里MWE是如何向简单的条形图添加计数标签的方法。将它们分组时,请参见下面的情况。
library(datasets)
library(tidyverse)
data <- chickwts %>%
group_by(feed) %>%
count %>%
ungroup %>%
mutate(p = n / sum(n))
ggplot(data, aes(x = feed, y = p, fill = feed)) +
geom_bar(stat = "identity") +
geom_text(stat = "identity",
aes(label = n), vjust = -1)
您应该能够对数据执行相同的操作。
编辑:StupidWolf在注释中指出原始示例已将数据分组。在position = position_dodge(0.9)
中添加geom_text
可以解决此问题。
同样,无法访问原始数据,但这是另一个使用mtcars
的MWE,显示以下内容:
library(datasets)
library(tidyverse)
data <- mtcars %>%
as_tibble %>%
transmute(gear = as_factor(gear),
carb = as_factor(carb),
cyl = cyl) %>%
group_by(gear, carb) %>%
count
ggplot(data, aes(x = gear, y = n, fill = carb)) +
geom_bar(stat = "identity",
position = "dodge") +
geom_text(aes(label = n),
stat = "identity",
vjust = -1,
position = position_dodge(0.9))