Cố gắng tạo một sơ đồ Sankey khá chung chung với sự trợ giúp của gói networkD3
của R. Chỉ để tham khảo - đây là ví dụ từ thủ công của góiBiểu đồ Sankey trong R
library(networkD3)
library(jsonlite)
library(magrittr)
energy <- "https://cdn.rawgit.com/christophergandrud/networkD3/master/JSONdata/energy.json" %>%
fromJSON
sankeyNetwork(Links = energy$links,
Nodes = energy$nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "name",
units = "TWh",
fontSize = 12,
nodeWidth = 30)
mà kết quả trong:
mở rộng khá đơn giản của tôi bao gồm việc xây dựng một sơ đồ với các dữ liệu cơ bản sau đây:
links <- structure(list(source = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 4L,
5L, 4L, 5L),
.Label = c("1", "2", "3", "4", "5"),
class = "factor"),
target = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 4L,
4L),
.Label = c("4", "5", "6", "7"),
class = "factor"),
value = c(88L, 774L, 1220L, 412L, 5335L, 96L, 3219L,
1580L, 111L, 7607L)),
row.names = c(NA, 10L),
class = "data.frame",
.Names = c("source", "target", "value"))
nodes <- structure(list(lab = c("A", "B", "C", "D", "E", "F", "G")),
row.names = c(NA, -7L),
.Names = "lab", class = "data.frame")
với ứng dụng đơn giản này được chọn sao cho dữ liệu của tôi phản ánh chặt chẽ nhất ví dụ thủ công. Tuy nhiên, khi tôi chạy hàm có thể so sánh:
sankeyNetwork(Links = links,
Nodes = nodes,
Source = "source",
Target = "target",
Value = "value",
NodeID = "lab")
Không có gì xảy ra. Sai lầm của tôi là gì?