如何在应用 coord.flip() 后组织 geom_bar() 值?包ggplot2

How to organize geom_bar() values ​after applying coord.flip()? Package ggplot2

如何将数字集中放置在正确的位置?我测试了很多参数,但我还没有找到解决方案。在 coordin_flip() 之后一切都很混乱。观察下面的图像和代码。

代码:

# Package
library(ggplot2)

# Create a dataframe
RATE <- c('IgG','IgG','IgA/IgG','IgA/IgG')
GROUP <- c('Asymptomatic','Symptomatic','Asymptomatic','Symptomatic')
N_POSITIVE <- c(12,100,14,107)
PORCENT <- c(7.05, 58.8, 7.73, 59.1)
df <- data.frame(RATE, GROUP, N_POSITIVE, PORCENT)

# Plot
ggplot(df, aes(x = RATE, y = PORCENT, fill = GROUP)) +
  geom_bar(stat="identity", width = 0.5) +
  geom_text(aes(label=N_POSITIVE),
            vjust = -0.3, color = 'black',
            size = 3) +
  coord_flip() +
  labs(x = '', y = 'Percentage (%)\n') +
  scale_fill_manual(values = c("#0073c2", "#efc000")) +
  theme_classic() +
  theme(
    legend.position = "top",
    legend.title = element_blank(),
    axis.text = element_text(angle = 0, color = "black", size = 10, face = 0),
    axis.title.x = element_text(angle = 0, color = "black", size = 12, face = 0))

图片:

这是你想要的吗? (减去我遗漏的其他格式)

ggplot(df, aes(x = PORCENT, y  = RATE,  fill = GROUP)) +
  geom_col(width = 0.5) +
  geom_text(aes(label=N_POSITIVE),
            vjust = -0.3, color = 'black', hjust = 1.1,
            size = 3, position = "stack")

(请注意,自 2020 年 3 月的 ggplot2 3.3.0 以来,如果您将大多数 geom 分配给您想要的轴,则它们不需要 coord_flip。如果解释不正确,还有一个“ orientation”参数,但这里似乎没有必要。此外,geom_col 等于 geom_bar(stat="identity")。)