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

使用ggplot绘制购买红混酿的酒吧及餐厅占比柱状图问题咨询

调整思路

你原来的代码存在两个核心问题:

  • 字段映射不符合需求:x轴用了地区region、y轴用了总消费totdol,和你要统计的「餐厅/酒吧的红混酿购买数据」不匹配
  • 统计逻辑不符合需求:fun = "mean"是计算均值,你需要的求和逻辑要把参数改成fun = "sum"

实现代码

1. 直接统计红混酿购买总和

把x轴替换为你数据中标识场所类型的字段(示例假设字段名为venue_type,取值为餐厅/酒吧,你可以替换为自己的实际字段名),y轴替换为red_blend即可:

ggplot(PCsUnlimited) + 
  stat_summary(aes(x = venue_type, y = red_blend), fun = "sum", geom = "bar") + 
  ylab("红混酿购买总金额/总量") +
  xlab("场所类型")

2. 计算占比并绘制百分比柱状图

如果需要展示占比,推荐先做数据汇总再绘图,逻辑更清晰:

library(dplyr)
# 先汇总各场所的红混酿购买数据,计算占比
PCsUnlimited_summary <- PCsUnlimited %>%
  group_by(venue_type) %>%
  summarise(total_red_blend = sum(red_blend, na.rm = TRUE)) %>%
  mutate(purchase_prop = total_red_blend / sum(total_red_blend))

# 绘制占比柱状图
ggplot(PCsUnlimited_summary, aes(x = venue_type, y = purchase_prop)) +
  geom_col(fill = "#2c7fb8") +
  scale_y_continuous(labels = scales::percent) + # 将y轴转换为百分比格式
  ylab("红混酿购买占比") +
  xlab("场所类型")

注意事项

  • 如果red_blend是0/1标识是否购买的字段,sum统计的就是对应场所的购买用户/订单总量;如果是金额字段,sum统计的就是总购买金额,占比计算逻辑通用
  • 代码中na.rm = TRUE参数是为了避免空值导致计算错误,若你的数据无空值可删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:06:05