【发布时间】:2016-08-02 17:53:07
【问题描述】:
我有一个对象数组,将实际刻度值映射到我想要刻度的显示标签。换句话说,该对象以刻度值为键并给出显示值。
var tickMap = [{"27": 27, "28": 28, "29": 29, "30": 30, "31": "Test", "32": "Test2", "33": 33},
{"50": 50, "58": "Test3", "66": 66, "74": 74, "82": 82, "90": 90}];
然后我循环这个,并使用tickFormat 属性,尝试返回每个刻度值的显示值。 d 是来自tickValue 的刻度的实际数值:
for (var i = 0; i < tickMap.length; i++) {
index = i;
dimensions[i] = {
'tickFormat': function(d) {
return tickMap[index][d];
},
// other dimension properties are here, including arrays of
// the actual tick values in the tickValues property.
}
};
但这似乎只适用于数组中的第二个(或最后一个)轴。我没有使用tickMap[i][d],而是尝试全局声明index,然后将i 的值分配给index,但这并没有帮助。
我还收到错误“可变变量可从闭包中访问”。
我不确定如何解决这个问题。任何帮助将不胜感激。
【问题讨论】:
标签: javascript d3.js