在R流中可视化从一组对象到另一组对象

Pat*_*her 3 visualization r data-visualization

我对如何在NIH审查补助金感兴趣.补助金审查程序的运作方式是国会为各种机构(如国家癌症研究所或NCI)分配资金,并向这些机构提交个人补助金.这些机构围绕各种资助重点(例如,癌症,传染病等)进行组织.

但是,在审查补助金时,通常会(但并非总是)将补助金发送给个别研究部门,这些部门更多地围绕科学学科进行组织.因此,如果研究人员向NHLBI提交资助以研究白血病,那么"肿瘤进展"研究部分可以发现自己正在审查来自国家癌症研究所和国家心脏,肺和血液研究所(NHLBI)的资助.

我在R中有一个数据框,看起来像这样:

grant_id <- 1:100
funding_agency <- sample(rep(c("NIAID", "NIGMS", "NHLBI", "NCI", "NINDS"), 20))
study_section <- sample(rep(c("Tumor Cell Biology", "Tumor Progression", 
                              "Vector Biology", "Molecular Genetics", 
                              "Medical Imaging", "Macromolecular Structure",
                              "Infectious Diseases", "Drug Discovery", 
                              "Cognitive Neuroscience", "Aging and Geriatrics"), 
                            10)
                        )
total_cost <- rnorm(100, mean = 30000, sd = 10000)
d <- data.frame(grant_id, funding_agency, study_section, total_cost)

some(d)

   grant_id funding_agency          study_section total_cost
15       15          NINDS         Vector Biology   25242.19
19       19            NCI    Infectious Diseases   29075.21
50       50            NCI         Drug Discovery   25176.35
62       62            NCI      Tumor Progression   14264.34
64       64          NIAID     Tumor Cell Biology   30024.13
Run Code Online (Sandbox Code Playgroud)

我想创建这些数据的两个可视化,希望使用R; 一个显示提交给各个研究所的拨款如何分配给研究部分,另一个显示由研究所分配给研究部门的拨款的金额.我最终想要的是您在以下网站中看到的图表:

迁移流程

学院专业为工作管道

有没有人知道R包和/或有一些示例代码来创建一个你在上面的网站上找到的图表?或者,我是否应该考虑采用不同的可视化来实现相同的目标?

Ram*_*ath 9

这是如何做到的rCharts.您可以在此处查看最终的SankeyPlot

d <- data.frame(
  id = grant_id, 
  source = funding_agency, 
  target = study_section, 
  value = total_cost
)
# devtools::install_github("rCharts", "ramnathv", ref = "dev")
require(rCharts)
sankeyPlot <- rCharts$new()
sankeyPlot$setLib('http://timelyportfolio.github.io/rCharts_d3_sankey')
sankeyPlot$set(
  data = d,
  nodeWidth = 15,
  nodePadding = 10,
  layout = 32,
  width = 750,
  height = 500,
  labelFormat = ".1%"
)
sankeyPlot
Run Code Online (Sandbox Code Playgroud)

要保存图表,您可以这样做

sankeyPlot$save('mysankey.html')
Run Code Online (Sandbox Code Playgroud)

sankeyplot