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

如何在R中使用Typology汇总迁移流数据并保留流向以绘制ggalluvial图?

解决方法

1. 匹配市政当局类型到迁移流数据

首先需要将迁移流数据中的起点、终点ID分别与类型数据关联,得到每个迁移流对应的起点类型和终点类型:

# 先修正类型数据里的拼写错误(Subrban → Suburban)
typology_df$Typology <- gsub("Subrban", "Suburban", typology_df$Typology)

# 匹配起点类型
migration_with_origin_type <- merge(
  migration_df,
  typology_df,
  by.x = "Origin_Municipality_Number",
  by.y = "Municipality_Number",
  all.x = TRUE
)
colnames(migration_with_origin_type)[colnames(migration_with_origin_type) == "Typology"] <- "Origin_Typology"

# 匹配终点类型
migration_with_types <- merge(
  migration_with_origin_type,
  typology_df,
  by.x = "Destination_Municipality_Number",
  by.y = "Municipality_Number",
  all.x = TRUE
)
colnames(migration_with_types)[colnames(migration_with_types) == "Typology"] <- "Destination_Typology"

2. 按类型配对汇总迁移流量

接下来按起点类型和终点类型分组,计算每组的总迁移数量:

library(dplyr)

summary_df <- migration_with_types %>%
  group_by(Origin_Typology, Destination_Typology) %>%
  summarise(Total_Migration = sum(Migration_Number), .groups = "drop")

得到的summary_df就是包含起点类型、终点类型和对应总流量的数据框,示例输出如下:

# A tibble: 4 × 3
  Origin_Typology Destination_Typology Total_Migration
  <chr>           <chr>                          <dbl>
1 Urban           Rural                            300
2 Suburban        Urban                            200
3 Rural           Suburban                          75

3. 绘制桑基图(Alluvial Plot)

使用ggalluvial包绘制迁移流可视化:

library(ggalluvial)
library(ggplot2)

ggplot(summary_df,
       aes(y = Total_Migration, axis1 = Origin_Typology, axis2 = Destination_Typology)) +
  geom_alluvium(aes(fill = Origin_Typology), width = 1/12) +
  geom_stratum(width = 1/12, fill = "white", color = "black") +
  geom_text(stat = "stratum", aes(label = after_stat(stratum))) +
  scale_x_discrete(limits = c("起点类型", "终点类型"), expand = c(0.05, 0.05)) +
  scale_fill_brewer(type = "qual", palette = "Set1") +
  labs(title = "不同市政类型间的迁移流量",
       y = "总迁移人数",
       fill = "起点类型") +
  theme_minimal()

这段代码会生成清晰的桑基图,直观展示各类型之间的迁移流向和流量大小。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:23:33