在 R 中向 100% 堆叠条形图添加和对齐频率标签
Adding and aligning frequency labels to 100% stacked bar charts in R
我正在尝试将带有频率信息(而非百分比)的标签添加到 R 中的 100% 堆积条形图中。
我在将标签集中在条形图的正确部分上时遇到问题。我正在使用下面的代码。我认为 position=position_fill(vjust=-0.5)
会适当地将标签居中,但显然仅此是不够的。
library(ggplot2)
df <- matrix(c('A','A','A','A','B','B','B','B','p','q','r','s','p','q','r','s',81,32,21,75,42,21,95,72),ncol=3)
colnames(df)=c("ID","Class","Frequency")
df<-as.data.frame(df)
fig <-ggplot(df,aes(fill=Class,y=Frequency,x=ID)) + geom_bar(position=position_fill(reverse=TRUE),stat="identity")
fig <- fig + coord_flip()
fig <- fig + geom_text(aes(label=Frequency),position=position_fill(vjust=-0.5))
任何和所有的帮助都是最合适的。
我们可以这样做:
library(ggplot2)
library(dplyr)
df %>%
mutate(Frequency = as.numeric(Frequency)) %>%
ggplot(aes(x = ID, y= Frequency, fill=Class)) +
geom_col(position = position_stack(reverse = TRUE))+
coord_flip() +
geom_text(aes(label = Frequency),
position = position_stack(reverse = TRUE, vjust = .5), size=6)
我正在尝试将带有频率信息(而非百分比)的标签添加到 R 中的 100% 堆积条形图中。
我在将标签集中在条形图的正确部分上时遇到问题。我正在使用下面的代码。我认为 position=position_fill(vjust=-0.5)
会适当地将标签居中,但显然仅此是不够的。
library(ggplot2)
df <- matrix(c('A','A','A','A','B','B','B','B','p','q','r','s','p','q','r','s',81,32,21,75,42,21,95,72),ncol=3)
colnames(df)=c("ID","Class","Frequency")
df<-as.data.frame(df)
fig <-ggplot(df,aes(fill=Class,y=Frequency,x=ID)) + geom_bar(position=position_fill(reverse=TRUE),stat="identity")
fig <- fig + coord_flip()
fig <- fig + geom_text(aes(label=Frequency),position=position_fill(vjust=-0.5))
任何和所有的帮助都是最合适的。
我们可以这样做:
library(ggplot2)
library(dplyr)
df %>%
mutate(Frequency = as.numeric(Frequency)) %>%
ggplot(aes(x = ID, y= Frequency, fill=Class)) +
geom_col(position = position_stack(reverse = TRUE))+
coord_flip() +
geom_text(aes(label = Frequency),
position = position_stack(reverse = TRUE, vjust = .5), size=6)