Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
D3.js Sankey图表-如何突出显示来自节点的链接集?_D3.js - Fatal编程技术网

D3.js Sankey图表-如何突出显示来自节点的链接集?

D3.js Sankey图表-如何突出显示来自节点的链接集?,d3.js,D3.js,我一直在研究D3 sankey图表,该图表显示了两个时间段内节点之间的体积移动。我的节点是颜色协调的(基于它们的名称)。我已经通过使用简单的CSS在我的链接上设置了悬停行为,但理想情况下,我需要的是能够悬停在左侧的节点上,然后来自该节点的所有链接都会高亮显示。类似地,您应该能够将鼠标悬停在右侧相应的节点上,并高亮显示进入该节点的所有链接 这是到目前为止我的代码。任何帮助都将不胜感激: //设置图形的尺寸和边距 var保证金={ 排名:75, 右:10,, 底部:10, 左:10 }, 宽度=9

我一直在研究D3 sankey图表,该图表显示了两个时间段内节点之间的体积移动。我的节点是颜色协调的(基于它们的名称)。我已经通过使用简单的CSS在我的链接上设置了悬停行为,但理想情况下,我需要的是能够悬停在左侧的节点上,然后来自该节点的所有链接都会高亮显示。类似地,您应该能够将鼠标悬停在右侧相应的节点上,并高亮显示进入该节点的所有链接

这是到目前为止我的代码。任何帮助都将不胜感激:

//设置图形的尺寸和边距
var保证金={
排名:75,
右:10,,
底部:10,
左:10
},
宽度=900-边距。左侧-边距。右侧,
高度=500-margin.top-margin.bottom;
//将svg对象附加到页面主体
var svg=d3.选择(“图表”).追加(“svg”)
.attr(“宽度”,宽度+边距。左侧+边距。右侧)
.attr(“高度”,高度+边距。顶部+边距。底部)
.附加(“g”)
.attr(“转换”,
“翻译(“+margin.left+”,“+margin.top+”);
//使用的色标
var color=d3.scaleOrdinal().range([“002060ff”、“164490ff”、“4d75bcff”、“98b3e6ff”、“d5e2feff”、“008cb0ff”);
//设置sankey图表属性
var sankey=d3.sankey()
.诺德维特(175)
.nodePadding(10)
.尺寸([宽度、高度]);
//加载数据
风险值数据={
“年”:[{
“年份”:2019年
}, {
“年份”:2020年
}
],
“节点”:[{
“节点”:0,
“id”:“a”,
“名称”:“A”
},
{
“节点”:1,
“id”:“b”,
“名称”:“B”
},
{
“节点”:2,
“id”:“c”,
“名称”:“C”
},
{
“节点”:3,
“id”:“d”,
“名称”:“D”
},
{
“节点”:4,
“id”:“e”,
“名称”:“E”
},
{
“节点”:5,
“id”:“f”,
“名称”:“F”
},
{
“节点”:6,
“id”:“a”,
“名称”:“A”
},
{
“节点”:7,
“id”:“b”,
“名称”:“B”
},
{
“节点”:8,
“id”:“c”,
“名称”:“C”
},
{
“节点”:9,
“id”:“d”,
“名称”:“D”
},
{
“节点”:10,
“id”:“e”,
“名称”:“E”
},
{
“节点”:11,
“id”:“f”,
“名称”:“F”
}
],
“链接”:[{
“来源”:0,
“目标”:6,
“价值”:20
},
{
“来源”:0,
“目标”:7,
“价值”:10
},
{
“来源”:0,
“目标”:8,
“价值”:10
},
{
“来源”:0,
“目标”:9,
“价值”:10
},
{
“来源”:0,
“目标”:10,
“价值”:20
},
{
“来源”:0,
“目标”:11,
“价值”:10
},
{
“来源”:1,
“目标”:6,
“价值”:40
},
{
“来源”:1,
“目标”:7,
“价值”:10
},
{
“来源”:1,
“目标”:8,
“价值”:10
},
{
“来源”:1,
“目标”:9,
“价值”:10
},
{
“来源”:1,
“目标”:10,
“价值”:10
},
{
“来源”:1,
“目标”:11,
“价值”:10
},
{
“来源”:2,
“目标”:6,
“价值”:20
},
{
“来源”:2,
“目标”:7,
“价值”:10
},
{
“来源”:2,
“目标”:8,
“价值”:10
},
{
“来源”:2,
“目标”:9,
“价值”:10
},
{
“来源”:2,
“目标”:10,
“价值”:10
},
{
“来源”:2,
“目标”:11,
“价值”:10
},
{
“来源”:3,
“目标”:6,
“价值”:20
},
{
“来源”:3,
“目标”:7,
“价值”:10
},
{
“来源”:3,
“目标”:8,
“价值”:10
},
{
“来源”:3,
“目标”:9,
“价值”:10
},
{
“来源”:3,
“目标”:10,
“价值”:10
},
{
“来源”:3,
“目标”:11,
“价值”:10
},
{
“来源”:4,
“目标”:6,
“价值”:20
},
{
“来源”:4,
“目标”:7,
“价值”:10
},
{
“来源”:4,
“目标”:8,
“价值”:10
},
{
“来源”:4,
“目标”:9,
“价值”:10
},
{
“来源”:4,
“目标”:10,
“价值”:10
},
{
“来源”:4,
“目标”:11,
“价值”:10
},
{
“来源”:5,
“目标”:6,
“价值”:20
},
{
“来源”:5,
“目标”:7,
“价值”:10
},
{
“来源”:5,
“目标”:8,
“价值”:10
},
{
“来源”:5,
“目标”:9,
“价值”:10
},
{
“来源”:5,
“目标”:10,
“价值”:10
},
{
“来源”:5,
“目标”:11,
“价值”:10
}
]
}
//构造一个新的Sankey
桑基
.nodes(数据.nodes)
.links(data.links)
.布局(0);
//添加链接
var link=svg.append(“g”)
.selectAll(“.link”)
.数据(数据链接)
.输入()
.append(“路径”)
.attr(“类”、“链接”)
.attr(“d”,sankey.link())
.样式(“笔划宽度”,功能(d){
返回Math.max(1,d.dy);
})
.排序(功能(a、b){
返回b.dy-a.dy;
})
//添加节点
var node=svg.append(“g”)
.selectAll(“.node”)
.data(data.nodes)
.enter().append(“g”)
.attr(“类”、“节点”)
.attr(“转换”,函数(d){
返回“translate”(“+d.x+”,“+d.y+”);
})
//为节点添加矩形
节点
.append(“rect”)
.attr(“高度”,功能(d){
返回d.dy;
})
.attr(“宽度”,sankey.nodeWidth())
.attr(“rx”,3)
.attr(“ry”,3)
.样式(“填充”,功能(d){
返回d.color=color(d.id.replace(/.*/,“”));
})
//添加悬停文本
.附加(“标题”)
.文本(功能(d){
返回d.name+“\n”+d.value
});
//添加节点的标题
节点
.append(“文本”)
.attr(“x”,87)
.attr(“y”,函数(d){
返回d.dy/2;
})
.attr(“dy”,“.35em”)
.