基于问卷数据绘制累计应答数随时间变化曲线
问卷累计应答数量可视化(R语言实现)
步骤1:数据预处理
先把日期转换为可识别的时间格式,统计每日新增应答数并计算累计值:
# 加载依赖包 library(dplyr) library(ggplot2) # 示例数据集 d <- data.frame( id = c(1, 2, 3, 4), date = c("2023-01-01", "2023-01-01", "2023-01-02", "2023-01-03"), age = c(22, 26, 19, 31), another_question = c("answer 1", "answer 2", "answer 1", "answer 3") ) # 生成累计统计数据 cumulative_data <- d %>% mutate(date = as.Date(date)) %>% # 转换日期格式 count(date, name = "daily_responses") %>% # 统计每日应答数 arrange(date) %>% # 按日期排序 mutate(cumulative_responses = cumsum(daily_responses)) # 计算累计应答数
步骤2:绘制累计应答曲线
用ggplot2绘制折线图,同时标记出应答人数最多的日期:
# 定位应答峰值日期 peak_date <- cumulative_data %>% filter(daily_responses == max(daily_responses)) # 生成可视化图形 ggplot(cumulative_data, aes(x = date, y = cumulative_responses)) + geom_line(color = "#2c3e50", linewidth = 1.2) + # 累计趋势线 geom_point(size = 3, color = "#3498db") + # 每日累计值标记点 # 标注峰值日期及对应数量 geom_text(data = peak_date, aes(label = paste("峰值:", daily_responses, "份")), vjust = -1.2, color = "#e74c3c", fontface = "bold") + # 可选:标注每日新增应答数 geom_text(aes(label = daily_responses), vjust = 1.5, size = 3.5) + # 设置图表标题与坐标轴标签 labs(title = "问卷累计应答数量趋势", x = "日期", y = "累计应答人数") + theme_minimal() + theme(plot.title = element_text(hjust = 0.5, size = 14, face = "bold"))
效果说明
- 折线图清晰展示累计应答数随时间的增长趋势
- 红色加粗文本标记出应答人数最多的日期及对应数量
- 可选的每日新增数标注,能让读者快速了解各日期的应答活跃度
内容的提问来源于stack exchange,提问作者Michael Marx
相关产品推荐
相关产品推荐

