【问题标题】:Adding and aligning frequency labels to 100% stacked bar charts in R在 R 中添加和对齐频率标签到 100% 堆叠条形图
【发布时间】:2022-01-22 11:33:16
【问题描述】:

我正在尝试将带有频率信息(不是百分比)的标签添加到 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))

任何和所有的援助都是最合适的。

【问题讨论】:

    标签: r label alignment bar-chart


    【解决方案1】:

    我们可以这样做:

    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)
    

    【讨论】:

    • 感谢您的回复。但在您的示例中,该图表不再是 100% 堆积条形图。这是我遇到的问题之一。我似乎无法同时实现 100% 堆叠条形图,同时也无法将标签放置在正确的段上。所以我试图让频率轴是百分比,A 和 B 的条形填充整个轴高达 100%。关于如何使用计数标签实现这一目标的任何想法?
    • 试试position_fill() 而不是position_stack
    猜你喜欢
    • 2022-01-21
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    相关资源
    最近更新 更多