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

如何用R ggplot绘制total与outcome堆叠柱状图(stat=identity)

解决方案

首先确保你的模拟数据格式正确,先创建数据框:

data <- data.frame(
  no = 1:5,
  total = c(800, 700, 650, 600, 500),
  outcome = c(40, 30, 27, 25, 20)
)

你的原始代码存在重复调用geom_bar却未映射outcome数据、使用宽格式数据不支持多变量并列绘制、scale_y_continuous刻度参数设置错误的问题。以下是修正后的完整代码:

# 加载必要工具包
library(tidyverse)

# 将宽格式数据转换为ggplot适配的长格式
data_long <- data %>%
  pivot_longer(cols = c(total, outcome), 
               names_to = "variable", 
               values_to = "value")

# 绘制目标并列柱状图
ggplot(data_long, aes(x = factor(no), y = value, fill = variable)) +
  geom_bar(stat = "identity", 
           position = position_dodge(width = 0.8),  # 实现柱子并列展示
           width = 0.7) +
  scale_fill_manual(values = c("total" = "black", "outcome" = "gray")) +  # 指定对应颜色
  labs(x = "No", y = "Value") +
  scale_y_continuous(breaks = seq(0, 900, 100)) +  # 修正y轴刻度范围
  theme_minimal()

关键调整说明:

  • 用pivot_longer转换数据格式,让total和outcome作为分组变量,适配ggplot的绘图逻辑
  • position_dodge参数实现同一x轴位置下两个柱子的并列效果
  • scale_fill_manual精准指定黑色对应total、灰色对应outcome
  • 修正scale_y_continuous的刻度序列,从0开始覆盖数据范围,更直观呈现数值差异

内容的提问来源于stack exchange,提问作者이예림

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:35:21