0

我想使用 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)
4

1 回答 1

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)

在此处输入图像描述

我希望这会有所帮助:)

编辑注释:

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

于 2018-07-03T07:24:04.807 回答