我是 d3 新手,我一直在尝试自定义 Streamgraph 示例(http://mbostock.github.com/d3/ex/stream.html):
我遇到了一些问题:
我想为流中的每个图层分配一个自定义数据属性(例如,让我们说它是一个名为“类型”的标签),以便当您将鼠标悬停在该图层上时,会出现一个弹出框,其中列出了“类型”那一层。
当我将数据源输入图表时,我使用以下代码:
vis.selectAll("path")
.data(data0)
.enter().append("path")
该图似乎只采用以下格式的数据:
[
[
{
"x": 0,
"y": 91,
"y0": 1.11
},
{
"x": 1,
"y": 290,
"y0": 1.11
}
],
[
{
"x": 0,
"y": 9,
"y0": 1.11
},
{
"x": 1,
"y": 49,
"y0": 1.11
}
]
]
上面的每个子数组对应于流图中的一个层。
如何将数据传递给允许我为每一层添加额外的“类型”属性的图表?
基本上,当我参考图层的数据时,我可以输入类似 d.type 的内容并提取该属性?
我最初想出了一个非常骇人听闻的方法来做到这一点:
[
{
"x": 0,
"y": 9,
"y0": 1.11,
"type": "listings"
},
{
"x": 1,
"y": 49,
"y0": 1.11,
}
]
然后我通过说 d[0].type 在层数据中引用它,但这似乎不是正确的方法。