美文网首页
【R语言】--- 桑基图

【R语言】--- 桑基图

作者: 生态数据 | 来源:发表于2023-06-22 21:43 被阅读0次

    基本简介

    桑基图(Sankey diagram) 是用于描述一组值到另一组值流向的图表,可以查看数据的变化情况。主要应用于能源、零售、金融、自媒体等数据的可视化分析。在R语言中,桑基图主要用到的是networkD3包。

    示例代码

    #networkD3包绘制桑基图
    #安装需要的R包
    #处理数据
    #install.packages("dplyr")
    #绘制桑基图
    #install.packages("networkD3")
    
    #调用需要的R包
    library(dplyr)
    library(networkD3)
    
    #产生数据集
    #设置种子
    set.seed(1234)
    #构建数据集
    data <- data.frame(
      AA = paste0("AA_",1:5) %>% sample(100, replace = TRUE),
      BB = paste0("BB_", 1:10) %>% sample(100, replace = TRUE),
      Value = runif(100, 1, 10))
    #查看前15行
    head(data, 15)
    
    #转化为因子
    data <- data %>% mutate_if(is.character, as.factor)
    str(data)
    nodes <- data.frame(node = c(data$AA, data$BB)) %>% unique()
    data$ID_AA <- match(data$AA, nodes$node) - 1
    data$ID_BB <- match(data$BB, nodes$node) - 1
    #查看数据
    head(data)
    
    #作图
    sankeyNetwork(Links = data, Nodes = nodes, 
                  Source = "ID_AA", Target = "ID_BB", Value = "Value",
                  NodeID = "node",
                  fontSize= 18, nodeWidth = 30)
    

    参考文献

    [1] https://www.modb.pro/db/509252
    [2] https://zhuanlan.zhihu.com/p/482446403

    相关文章

      网友评论

          本文标题:【R语言】--- 桑基图

          本文链接:https://www.haomeiwen.com/subject/xajmydtx.html