R中的HighCharts桑基图

Posted

技术标签:

【中文标题】R中的HighCharts桑基图【英文标题】:HighCharts Sankey Diagram in R 【发布时间】:2018-10-18 22:03:50 【问题描述】:

我想使用 R 中的 highcharter 库创建一个 sankey 图。通常我只能查看该图的 javascript 代码并将其翻译为 R,但对于 sankey 图我遇到了一些麻烦.我想从创建这样的东西开始:http://jsfiddle.net/highcharts/z2rL672w/3/

到目前为止,这是我的尝试。我在放置“keys”参数时遇到了麻烦。

highchart() %>%
  hc_chart(type='sankey') %>%
  hc_add_series_list(
    list(
      keys=c('from', 'to', 'weight')
    ),
    list(
      data=list(
        list(
          from='AT',
          to='DE',
          weight=10
        ),
        list(
          from='DE',
          to='CH',
          weight=5
        ),
        list(
          from='DE',
          to='FI',
          weight=5
        )
      )
    )
  )

编辑:

我现在正在尝试以下操作。还是有点麻烦

library(highcharter)
library(tidyverse)
library(jsonlite)

dat <- data.frame(from=c('AT', 'DE', 'CH', 'DE'),
                   to=c('DE', 'CH', 'DE', 'FI'),
                   weight=c(10, 5, 15, 5)) %>%
  toJSON()

highchart() %>%
  hc_chart(type='sankey') %>%
  hc_series(dat)

【问题讨论】:

如果您的点被定义为 JSON(例如 from: 'AT' to: 'DE', weight: 10),则不需要 keys 属性:jsfiddle.net/BlackLabel/28r99qbj keys 属性的实际用法在 API:api.highcharts.com/highcharts/series.sankey.keys 感谢您的回复!不过我还是有点麻烦。你能检查一下我上面的尝试吗? 我对 R 了解不多,所以我不知道你的代码到底发生了什么。以下是 Highcharts 中支持的数据格式列表:highcharts.com/docs/chart-concepts/series 也许会有所帮助。 【参考方案1】:

我使用了函数hc_add_series(没有键)并且它工作了:

第一次尝试:

highchart() %>%
  hc_chart(type = 'sankey') %>%
  hc_add_series(
      data = list(
        list(from = 'AT', to = 'DE', weight = 10),
        list(from = 'DE', to = 'CH', weight = 5),
        list(from = 'DE', to = 'FI', weight = 5))
      )

第二次尝试:

library(highcharter)
library(tidyverse)
library(jsonlite)

dat <- data.frame(from = c('AT', 'DE', 'CH', 'DE'),
                  to = c('DE', 'CH', 'DE', 'FI'),
                  weight = c(10, 5, 15, 5)) %>%
  toJSON()

highchart() %>%
  hc_chart(type = 'sankey') %>%
  hc_add_series(data = dat)

希望能帮到你:)

编辑说明:

我使用的是highcharter的0.6.0开发版,安装请使用:devtools::install_github("jbkunst/highcharter")

【讨论】:

感谢您的回复!我没有收到任何错误,但也没有收到任何显示:(你使用的是什么版本的 highcharter? 我有 highcharter(0.6.0)。 我也对此感兴趣。你是怎么得到v0,6的?当前版本好像是 0.5 (CRAN.R-project.org/package=highcharter) 看起来这是一个开发功能。 @JoeBringley 尝试下载开发版。 哦,它是开发版本,您可以使用以下命令安装它:devtools::install_github("jbkunst/highcharter")

以上是关于R中的HighCharts桑基图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用冲积图(或桑基图)使用 R 显示类别随时间的变化

一种ceRNA关系网络的新颖画法,R语言绘制冲击图(桑基图)教程

R-无序的定类数据分析:列联表、热力图、和弦图、桑基图和统计检验

桑基图中的标签

Python3画桑基图

省略某些值时如何创建桑基图