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

如何调整tibble数据以在ggplot2中绘制分组柱状图?

解决方法

你遇到的问题核心是当前数据为宽格式,三个指标(浏览量/互动量/评论量)分别占用独立列,缺少你绘图代码中需要的category分类字段和value数值字段,只要先将数据转换为长格式即可。

1. 转换数据格式

使用tidyr包的pivot_longer函数完成宽表转长表:

# 加载依赖包,已安装可直接运行
library(tidyverse)

# 转换为长格式
data_long <- data %>%
  pivot_longer(
    cols = c(Views, Interactions, Comments),
    names_to = "category",
    values_to = "value"
  )

2. 绘制分组柱状图

转换后的数据可以直接适配你原来的绘图逻辑,这里做了少量优化:将Day转为因子避免X轴出现无效刻度,调整柱子间距避免拥挤:

bp_vic <- ggplot(data_long, aes(x = as.factor(Day), y = value, fill = category)) +
  geom_col(position = position_dodge(0.8), width = 0.7) +
  labs(x = "发布天数", y = "数值", fill = "指标类型") +
  theme_minimal()

bp_vic

可选优化

由于Views数值远高于另外两个指标,会导致互动量、评论量的柱子高度几乎不可见,可添加对数Y轴调整显示效果:

bp_vic + scale_y_log10(labels = scales::comma)

内容的提问来源于stack exchange,提问作者David M Vermillion

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:15:05