javascript - R - 对角网络中的 JS 数组
问题描述
我的问题是关于:
RadialNetwork()的R networkD3颜色节点笔划
每当我创建和使用颜色矢量(链接答案中给出的上下文)时,diagonalNetwork()
节点颜色的分布都会不正确。
有没有办法知道如何diagonalNetwork()
重新排列输入的数据?网络标签和结构是正确的。只有颜色不是。
解决方案
颜色按级别应用,然后按数据最初的顺序应用。在这个例子中,颜色是这样排序的,根是黑色,省份是红色,城市是蓝色。
library(networkD3)
CanadaPC <- list(name = "Canada", children =
list(list(name = "Newfoundland",
children = list(list(name = "St. John's"))),
list(name = "PEI",
children = list(list(name = "Charlottetown"))),
list(name = "Nova Scotia",
children = list(list(name = "Halifax"))),
list(name = "New Brunswick",
children = list(list(name = "Fredericton"))),
list(name = "Quebec",
children = list(list(name = "Montreal"),
list(name = "Quebec City"))),
list(name = "Ontario",
children = list(list(name = "Toronto"),
list(name = "Ottawa"))),
list(name = "Manitoba",
children = list(list(name = "Winnipeg"))),
list(name = "Saskatchewan",
children = list(list(name = "Regina"))),
list(name = "Nunavuet",
children = list(list(name = "Iqaluit"))),
list(name = "NWT",
children = list(list(name = "Yellowknife"))),
list(name = "Alberta",
children = list(list(name = "Edmonton"))),
list(name = "British Columbia",
children = list(list(name = "Victoria"),
list(name = "Vancouver"))),
list(name = "Yukon",
children = list(list(name = "Whitehorse")))
))
colorVector <- c("black", rep("red", 13), rep("blue", 16))
jsarray <- paste0('["', paste(colorVector, collapse = '", "'), '"]')
nodeStrokeJS <- JS(paste0('function(d, i) { return ', jsarray, '[i]; }'))
diagonalNetwork(List = CanadaPC, nodeStroke = nodeStrokeJS)
推荐阅读
- dask - Dask +SLURM over ftp mount (CurlFtpFS)
- odbc - odbc.ini 中驱动程序路径中的环境变量
- rust - 生锈和借用中的字符串连接
- prolog - 为什么 `f(a)=a` 失败但 `f(X)=X` 在 prolog 中成功?
- apache-spark - PySpark 中字符串和空值比较的难以理解的结果
- sql - 将空值传递为零
- java - 通过 Wi-Fi 使用 TCP 将 Android 应用程序连接到 IoT 设备
- android - 如何将字符串的特定字符设置为文本视图而不是整个字符串?
- python - Python无法访问简单成绩程序中的全局变量
- python - Python def in if True 不返回