在c3散点图上,我可以给每个点一个x和y值,但我还需要给它们一个名字。
我传入的json数据看起来像这样:
[
{
name: 'Some Name 1',
x: 209,
y: 50
}
{
name: 'Some Name 2',
x: 100,
y: 86
}
]
有没有办法在鼠标悬停时获取该点的名称?我正在寻找一种方法来解释两个点具有相同的x和y值的可能性。
答案 0 :(得分:1)
所以,如果你有这样的事情:
svg.selectAll("circle")
.data(array)
.enter().append("circle")
.attr("x",function(d){return d.x;})
.attr("y",function(d){return d.y;});
您可以添加以下内容:
.attr("title",function(d){return d.name;});
获得:
svg.selectAll("circle")
.data(array)
.enter().append("circle")
.attr("x",function(d){return d.x;})
.attr("y",function(d){return d.y;})
.attr("title",function(d){return d.name;});
如果您的数据集有很多重叠值。我会将“name:”元素更改为数组。然后将任何重叠点组合成单个对象。 所以:
[
{
name: ['Some Name 1'],
x: 209,
y: 50
},
{
name: ['Some Name 2'],
x: 209,
y: 50
}
]
会变成:
[
{
name: ['Some Name 1','Some Name 2'],
x: 209,
y: 50
}
]
你的d3代码将成为:
svg.selectAll("circle")
.data(array)
.enter().append("circle")
.attr("x",function(d){return d.x;})
.attr("y",function(d){return d.y;})
.attr("title",function(d){
var title = "";
title = title + d[0];
for(var i = 1; i < d.length; i++){
title = title + ", " + d[i];
}
return title;
});