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

R语言ggplot绘制客户评分散点图及平均值折线的实现问题

解决方法:添加客户评分平均值折线到散点图

你之前尝试的geom_hline是绘制全局水平平均线,无法展示每月评分的变化趋势;stat_summary需要正确配置参数才能生成按月份的平均值折线。下面提供两种可行方案:

方案一:直接用stat_summary生成折线

利用stat_summary实时计算每月评分均值,通过指定geom="line"绘制折线,同时需要设置group=1(因为x轴是因子类型,ggplot默认不会连接不同因子水平的点)。

完整代码:

dataset = read.csv("MOCK_DATA3.csv")

beoorGraph_data <- dataset %>%
  mutate(Maand = factor(Maand, levels = c("November", "December", "January", "February", "March", "April")))

ggplot(beoorGraph_data, aes(x= Maand, y=Klanttevredenheid))+
  geom_point()+
  # 绘制每月平均值折线,红色加粗
  stat_summary(fun = mean, geom = "line", aes(group = 1), color = "red", size = 1)+
  # 可选:添加平均值点,更直观
  stat_summary(fun = mean, geom = "point", color = "red", size = 3)+
  labs(title="Klanttevredenheid")

方案二:先计算平均值再绘制折线

先用dplyr分组计算每月评分均值,再将结果作为新数据集传入geom_line,同样需要设置group=1。这种方式更灵活,方便后续对平均值数据做进一步处理。

完整代码:

dataset = read.csv("MOCK_DATA3.csv")

beoorGraph_data <- dataset %>%
  mutate(Maand = factor(Maand, levels = c("November", "December", "January", "February", "March", "April")))

# 分组计算每月平均评分,na.rm=TRUE处理缺失值
monthly_avg <- beoorGraph_data %>%
  group_by(Maand) %>%
  summarize(avg_tevredenheid = mean(Klanttevredenheid, na.rm = TRUE))

ggplot(beoorGraph_data, aes(x= Maand, y=Klanttevredenheid))+
  geom_point()+
  # 用预计算的平均值绘制折线,蓝色加粗
  geom_line(data = monthly_avg, aes(x = Maand, y = avg_tevredenheid, group = 1), color = "blue", size = 1)+
  # 可选:添加平均值点
  geom_point(data = monthly_avg, aes(x = Maand, y = avg_tevredenheid), color = "blue", size = 3)+
  labs(title="Klanttevredenheid")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:35:23