You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

geom_text标签在堆叠柱状图中重复显示问题求助

解决堆叠柱状图标签重复问题

问题原因

你的数据中存在同一week_ending(周结束日期)和variant(毒株变体)对应多行记录的情况。未做聚合处理时,每一行记录都会在堆叠柱状图中生成一个细分段,且只要该行share(占比)大于0.1,就会添加一个标签——这直接导致同一变体在同一周内出现多个重复标签。

解决方案

绘图前先按周和变体分组,将同一变体在同一周内的占比求和,确保每个周-变体组合仅保留一行记录。这样每个变体在每周的堆叠段中只会生成一个标签。

调整后的代码

library(ggplot2)
library(dplyr)
library(magrittr)

variant_url <- "https://data.cdc.gov/api/views/jr58-6ysp/rows.csv"

variant_data <- read.csv("C:/<your download path here>/SARS-CoV-2_Variant_Proportions.csv", header = TRUE,
                         stringsAsFactors = FALSE)

variant_data$week_ending <- as.Date(variant_data$week_ending, format = "%m/%d/%Y")

# 新增分组聚合步骤,合并同一周同一变体的占比
USA_variant_data <- variant_data %>% 
  filter(usa_or_hhsregion == "USA", week_ending >= "2022-06-01") %>%
  group_by(week_ending, variant) %>%
  summarize(share = sum(share), .groups = "drop") %>%  # 求和并取消分组
  select(week_ending, variant, share)

USA_variant_bar <- USA_variant_data %>% ggplot(aes(fill=variant, y=share, x=week_ending)) +
  geom_bar(position="fill", stat="identity") +
  geom_text(aes(label=ifelse(share >0.1, variant,"")), position=position_fill(vjust=0.5), size = 2) +
  labs(x = "",
       y = "Percent of genomes sequenced") +
  theme(plot.title = element_text(size = rel(1), face = "bold"),
        plot.subtitle = element_text(size = rel(0.7)),
        plot.caption = element_text(size = rel(1)),
        axis.text.y = element_text(color='forestgreen'),
        axis.title.y = element_text(color="forestgreen"),
        axis.text.x = element_text(angle = 45,hjust = 1))

print(USA_variant_bar)

内容的提问来源于stack exchange,提问作者jerH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:50:25