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

使用ggplot2绘制长尾猴行为数据遇阻,求绘图指导

解决ggplot2绘制长尾猴行为数据的图表问题

原始代码与需求

你需要用ggplot2绘制长尾猴行为数据的横向分组条形图,现有代码如下:

males<-c(21,50,25,12,15,1,5)
females<-c(20,30,22,12,16,46,8)
activities<- c("playing", "grooming", "dancing", "feeding", "mating", "fighting", "eating")

Vervet<-data.frame(activities,females, males)

Vervet %>% 
  pivot_longer(females:males, values_to = "Count", names_to = "Gender") %>%
  ggplot(mapping = aes(x= activities , y= Count, fill= Gender))+ geom_col(position = "dodge")+
  scale_fill_continuous()+
  coord_flip()+
theme_bw()+
theme(panel.grid = element_blank())

预期效果为:横向分组条形图,每个行为对应雌雄两组条形,按指定顺序排列活动,颜色区分性别,无网格线,布局简洁。

问题分析与修正代码

现有代码存在3个核心问题:分类变量误用连续颜色映射、活动顺序未匹配预期、图表细节未对齐预期风格。修正后的完整代码如下:

males <- c(21,50,25,12,15,1,5)
females <- c(20,30,22,12,16,46,8)
activities <- c("playing", "grooming", "dancing", "feeding", "mating", "fighting", "eating")

Vervet <- data.frame(activities, females, males)

# 重新指定活动的因子顺序,匹配预期图的排列逻辑
Vervet$activities <- factor(Vervet$activities, 
                            levels = c("fighting", "grooming", "playing", "dancing", "mating", "feeding", "eating"))

Vervet %>% 
  pivot_longer(females:males, values_to = "Count", names_to = "Gender") %>%
  ggplot(aes(x = activities, y = Count, fill = Gender)) +
  geom_col(position = position_dodge(width = 0.8)) + # 调整分组条形的间距
  scale_fill_manual(values = c("females" = "#e07a5f", "males" = "#3d405b")) + # 匹配预期的性别配色
  coord_flip() +
  theme_bw() +
  theme(
    panel.grid = element_blank(),
    axis.title.y = element_blank(), # 隐藏冗余的y轴标签
    legend.title = element_blank(), # 隐藏图例标题
    legend.position = "top" # 将图例移至顶部,贴合预期布局
  ) +
  labs(y = "Count") # 明确设置y轴数值标签

关键修改说明

  • 活动顺序调整:将activities转换为因子类型,手动指定水平顺序,确保翻转后的y轴活动排列与预期图一致
  • 颜色映射修正:替换错误的scale_fill_continuous()为scale_fill_manual(),针对分类变量Gender指定对应颜色,匹配预期风格
  • 布局细节优化:调整分组条形间距、隐藏冗余标签、移动图例位置,让整体布局更贴近预期效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:25:34