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

ggplot2求助:如何仅展示日均社交使用超5小时的图表?

如何在ggplot中仅展示日均社交媒体使用超5小时的数据图表

你当前的问题是没有提前过滤数据集,而是试图用分面(facet_wrap)或填充映射(fill)来区分数据——这两种方式只会对数据做分组展示/上色,不会移除不符合条件的行,所以才会出现包含TRUE和FALSE的两类图表。

解决方法很直接:在绘制图表前先过滤出「日均使用超5小时」的数据,具体修改如下:

df %>%
  # 先过滤数据,只保留目标组
  filter(DailyAverage == "More than 5 hours") %>%
  ggplot(aes(Distracted, Frequency, fill = DailyAverage)) + 
  geom_bar(stat="identity", position = position_dodge()) +
  geom_text(aes(label=Frequency), vjust=1.6, color="Black", 
            position = position_dodge(0.9),  size=3.5) + 
  theme_bw()

补充说明:

  • 如果DailyAverage中「More than 5 hours」是唯一的目标分组,过滤后fill参数其实可以省略,但保留也不影响图表展示;
  • 你之前用的facet_wrap(~DailyAverage == "More than 5 hours")是把数据分成符合条件和不符合条件两个子集,分别生成面板,这就是为什么会出现两个图表;
  • 用fill = DailyAverage == "More than 5 hours"只是把数据标记为符合/不符合条件的两类并上色,同样不会移除不符合条件的行,所以图表里依然会显示所有数据。

内容的提问来源于stack exchange,提问作者Priscilla de Veer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 11:41:06