1
我試圖在整個地圖上設置每月數據的動畫效果。我將每個月的數據都存儲在一個數組中,當我試圖將數據綁定到如下所示的時候:.data(data.January)
它會起作用。但是,如果使用變量跟蹤.data(data.monthName)
所選的當前月份,它將在控制檯中返回TypeError
,並且不會呈現應用程序的其餘部分。D3:使用變量訪問綁定數組中的對象
我的猜測是我正在訪問的鍵值錯誤,而且D3有一個獨特的方式來處理。
下面是不起作用的功能。 (當滑塊控件更改月份update()
被觸發。)
d3.json("data/avg_revisit.json", function(data) {
color.domain([20, 0]);
function update() {
var monthName = getMonthName(currentMonth);
colored_bars.selectAll("rect")
.data(data.monthName)
.enter()
.append("rect")
.attr("width", getLandWidth())
.attr("class", "bars")
.attr("height", function(d) {
return projection([0, d.latitude - 0.5])[1] - projection([0, d.latitude])[1];
})
.attr("opacity", 0.6)
.style("fill", function(d) {
//Get data value
var value = d.average_revisit;
if (value) {
//If value exists…
return color(value);
} else {
//If value is undefined…
return "#ccc";
}
})
//Define position of each rectangle by it's latitude from the data
.attr("transform", function(d) {
return "translate(" + projection([-180, d.latitude]) + ")"
});
}
謝謝!這解決了它。我知道一些小事讓我尷尬。非常感謝。 –
歡迎您:) –
它也適用於無效名稱。例如,如果你有一個名爲「1st」的鍵,你不能寫'data.1st',但你可以寫'data [「1st」]'。 –