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

使用ggplot绘制用户访问次数分组用户数条形图的技术咨询

解决方案:用基础R快速统计并绘制目标条形图

我明白你的痛点——不想生成冗余的逻辑表,也不想依赖dplyr分组,用基础R就能轻松搞定这个需求!核心思路是直接用sum()统计符合各阈值的用户数量,再整理成绘图所需的结构,全程简洁高效。

步骤1:准备数据集

先模拟你提供的示例数据(如果已有现成数据集,直接跳过这一步):

# 构造示例数据
user_id <- c("0001", "0002", "0003", "0004", "0005", "0006")
number_of_visits <- c(12, 3, 1, 34, 11, 8)
df <- data.frame(user_id, number_of_visits)

步骤2:统计各阈值下的用户总数

不用冗余逻辑列,直接用sum()统计符合条件的用户数(逻辑向量中TRUE等价于1,sum()会自动累加符合条件的数量):

# 计算三个阈值对应的用户总数
count_data <- data.frame(
  visit_threshold = c("3次及以上", "5次及以上", "10次及以上"),
  total_users = c(
    sum(df$number_of_visits >= 3),  # 统计访问≥3次的用户数
    sum(df$number_of_visits >= 5),  # 统计访问≥5次的用户数
    sum(df$number_of_visits >= 10)  # 统计访问≥10次的用户数
  )
)

步骤3:绘制条形图

可以用基础R的barplot(),也可以用ggplot2(无需依赖dplyr):

方法1:基础R绘图

barplot(count_data$total_users,
        names.arg = count_data$visit_threshold,
        ylab = "total_number_of_users",
        xlab = "访问次数条件",
        main = "不同访问次数阈值下的用户数量",
        col = "#4292c6",
        ylim = c(0, max(count_data$total_users) + 1))  # 调整Y轴范围避免标签被遮挡

方法2:ggplot2绘图

如果习惯用ggplot2,直接用整理好的count_data即可:

library(ggplot2)

ggplot(count_data, aes(x = visit_threshold, y = total_users)) +
  geom_bar(stat = "identity", fill = "#4292c6") +
  labs(x = "访问次数条件", y = "total_number_of_users", title = "不同访问次数阈值下的用户数量") +
  theme_minimal()

为什么这个方案适合你?

  • 没有生成任何冗余的逻辑列,直接一步统计目标数量
  • 完全不需要使用dplyr分组,用基础R函数就能完成所有操作
  • 代码简洁易懂,后续调整阈值或扩展条件也非常方便

内容的提问来源于stack exchange,提问作者add-semi-colons

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:08:49