我希望使用这条数据创建一个简单的 sankey 图表,并专门绘制包,以便活动 ABC 指向资源“R5”,“BVN”指向“R1”,“IOP”指向“R6”。我关注了帖子https://plot.ly/r/sankey-diagram/,但我无法使用这些数据自动化 scipt。如果您能在没有 JSON 的情况下帮助我做到这一点,我将不胜感激。下面附上数据。
library(plotly)
library(rjson)
json_file <-"https://raw.githubusercontent.com/plotly/plotly.js/master/test/image/mocks/sankey_energy.json"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))
p <- plot_ly(
type = "sankey",
domain = c(
x = c(0,1),
y = c(0,1)
),
orientation = "h",
valueformat = ".0f",
valuesuffix = "TWh",
node = list(
label = json_data$data[[1]]$node$label,
color = json_data$data[[1]]$node$color,
pad = 15,
thickness = 15,
line = list(
color = "black",
width = 0.5
)
),
link = list(
source = json_data$data[[1]]$link$source,
target = json_data$data[[1]]$link$target,
value = json_data$data[[1]]$link$value,
label = json_data$data[[1]]$link$label
)
) %>%
layout(
title = "Energy forecast for 2050<br>Source: Department of Energy & Climate Change, Tom Counsell via <a href='https://bost.ocks.org/mike/sankey/'>Mike Bostock</a>",
font = list(
size = 10
),
xaxis = list(showgrid = F, zeroline = F),
yaxis = list(showgrid = F, zeroline = F)
)
Activity Resource Value
ABC R2 40
BVN R4 53
NCB R5 45
UNI R1 22
IOP R3 34
GAD R6 54