这是我的数据。
var data = [
{
"label": "branch-1",
"values": [
{ "day": "Monday", "value": 20},
{ "day": "Tuesday", "value": 18},
{ "day": "Wednesday", "value": 29},
{ "day": "Thursday", "value": 31},
{ "day": "Friday", "value": 37},
{ "day": "Saturday", "value": 25},
{ "day": "Sunday", "value": 19}
]
},
{
"label": "branch-2",
"values": [
{ "day": "Monday", "value": 32},
{ "day": "Tuesday", "value": 29},
{ "day": "Wednesday", "value": 37},
{ "day": "Thursday", "value": 41},
{ "day": "Friday", "value": 31},
{ "day": "Saturday", "value": 28},
{ "day": "Sunday", "value": 17}
]
}
]
我试图将标签添加到工具提示中,但是会收到错误" undefined"。我还需要在每行的末尾添加标签。类似,this示例中的名称。但我无法找到如何实现这一目标。
我的代码的小提琴链接是here。
答案 0 :(得分:0)
要在工具提示中获取标签,您需要在各个数据点中包含标签名称:
修改数据处理块如下:
data.forEach(function (kv) {
var labelName = kv.label;
kv.values.forEach(function (d) {
d.value = +d.value;
d.label = labelName;
});
});
要添加标签,请添加以下部分:
city.append("text")
.attr("transform", function(d) { var dayExt = d.values[d.values.length - 1].day; var valueExt = d.values[d.values.length - 1].value; return "translate(" + x(dayExt) + "," + y(valueExt) + ")"; })
.attr("x", 3)
.attr("dy", ".35em")
.text(function(d) { return d.label });
请在此处找到完整的小提琴:http://jsfiddle.net/prashant_11235/LY8zt/
您可以根据需要适当设置标签名称的样式。