问题
I'd like to create a sankey diagram using the highcharter library in R. Usually I'm just able to look at the javascript code for the plot and translate it for R, but for sankey plots I'm having some trouble. I'd like to just start by creating something like this: http://jsfiddle.net/highcharts/z2rL672w/3/
Here's my attempt so far. I'm having trouble where to place the "keys" argument.
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
)
)
)
)
EDIT:
I'm now trying the following. Still having a bit of trouble
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)
回答1:
I used the function hc_add_series
(without keys) and it worked:
for the fisrt attempt:
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))
)
for the second attempt:
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)
I hope that could help :)
edited note:
I use a development version 0.6.0 of highcharter, to install it please use: devtools::install_github("jbkunst/highcharter")
来源:https://stackoverflow.com/questions/50242318/highcharts-sankey-diagram-in-r