基于ggbump绘图的路径热度可视化:按通行量着色需求
关联通行量的ggbump路径图表制作需求
需求说明
- 制作ggbump风格图表,用于展示大量用户从起始节点到终点节点的路径通行情况
- 将图表中的节点(行)视为城市,通行量越高的路径颜色越深,以此区分不同路径的流量差异
示例数据生成代码
以下是生成100条用户数据的R代码,包含5种预设路径及对应通行频率:
set.seed(123) # 设置随机种子保证可复现性 df <- data.frame(matrix(ncol = 5, nrow = 100)) # 为数据框分配列名 colnames(df) <- c("User ID", "Stop 1", "Stop 2", "Stop 3", "Stop 4") # 创建包含5种可选路径的列表(感谢@tjebo的建议) paths <- list(c(1, 2, 3, 4), c(4, 4, 4, 3), c(3, 3, 2, 4), c(1, 3, 4, 2), c(1, 4, 2, 1)) # 为每条路径设置通行频率 path_frequencies <- c(50, 30, 10, 5, 5) # 循环填充数据框 for (i in 1:nrow(df)) { # 分配当前行的用户ID df[i, "User ID"] <- i # 根据路径频率随机选择路径编号 sample <- sample(1:5, size = 1, replace = TRUE, prob = path_frequencies / sum(path_frequencies)) # 选择对应的路径 path <- paths[[sample]] # 将路径赋值给当前行的站点列 df[i, 2:5] <- path }
待优化代码与问题
现有ggbump代码框架如下,需要修改以实现路径颜色深浅/线条粗细与通行人数关联(类似lavaan绘图的路径样式),可能需先对数据做格式转换(如group_by+mutate):
ggplot(df, aes(each stop, city (1:10), color = density function for path usage)) + geom_bump()
同时询问:是否可以编写单独函数统计各路径的通行次数,将其作为线条透明度的索引传入ggplot?
内容的提问来源于stack exchange,提问作者Conal Monaghan
相关产品推荐
相关产品推荐

