Javascript 为什么不是';D3过渡工作
我是D3新手,在两个数据集之间顺利转换时遇到困难。以下是我目前拥有的超简化版本:Javascript 为什么不是';D3过渡工作,javascript,d3.js,Javascript,D3.js,我是D3新手,在两个数据集之间顺利转换时遇到困难。以下是我目前拥有的超简化版本: var h = 500; var w = 500; var data = [ 10, 15, 12, 9 ] var data_two = [ 6, 15, 20, 19, 11 ] var vis = d3.select('body') .append('svg') .attr({ height: 500, width: 500 }) .a
var h = 500;
var w = 500;
var data = [
10,
15,
12,
9
]
var data_two = [
6,
15,
20,
19,
11
]
var vis = d3.select('body')
.append('svg')
.attr({
height: 500,
width: 500
})
.append('g');
function buildChart(data) {
var square = vis.selectAll('rect')
.data(data, function(d) { return d })
square
.transition()
.duration(1000)
.attr({
x : function(d, i) { return 0 }
})
square
.enter()
.append('rect')
.attr({
height : function(d, i) { return 10 },
y : function(d, i) { return i * 15 },
width : function(d, i) { return d * 5 },
x : function(d, i) { return 0 }
});
square
.exit()
.remove();
}
buildChart(data);
setTimeout(function() {
buildChart(data_two)
}, 1000)
jsfiddle:
我期望的结果是,在一秒钟的延迟后,将这些条平滑地设置为新的宽度。相反,他们只是跳转到新的状态,我不知道为什么。提前谢谢 你是
buildChart
函数总是放置新的条形图,它从不根据data\u two
中的数据更新你用data
放置的条形图。要解决此问题,请首先使用数据
附加矩形,然后选择它们并应用转换:
var h = 500;
var w = 500;
var data = [
10,
15,
12,
9,
3
]
var data_two = [
6,
15,
20,
19,
11
]
var vis = d3.select('body')
.append('svg')
.attr({
height: 500,
width: 500
})
.append('g');
vis.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
})
vis.selectAll('rect')
.data(data_two)
.transition()
.duration(1000)
.delay(1000)
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
});
这里有一个有效的你在
构建图表
功能总是放置新的条形图,它从不根据data\u two
中的数据更新你用数据
放置的条形图。要解决此问题,请首先使用数据
附加矩形,然后选择它们并应用转换:
var h = 500;
var w = 500;
var data = [
10,
15,
12,
9,
3
]
var data_two = [
6,
15,
20,
19,
11
]
var vis = d3.select('body')
.append('svg')
.attr({
height: 500,
width: 500
})
.append('g');
vis.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
})
vis.selectAll('rect')
.data(data_two)
.transition()
.duration(1000)
.delay(1000)
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
});
这里有一个有效的你在
构建图表
功能总是放置新的条形图,它从不根据data\u two
中的数据更新你用数据
放置的条形图。要解决此问题,请首先使用数据
附加矩形,然后选择它们并应用转换:
var h = 500;
var w = 500;
var data = [
10,
15,
12,
9,
3
]
var data_two = [
6,
15,
20,
19,
11
]
var vis = d3.select('body')
.append('svg')
.attr({
height: 500,
width: 500
})
.append('g');
vis.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
})
vis.selectAll('rect')
.data(data_two)
.transition()
.duration(1000)
.delay(1000)
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
});
这里有一个有效的你在
构建图表
功能总是放置新的条形图,它从不根据data\u two
中的数据更新你用数据
放置的条形图。要解决此问题,请首先使用数据
附加矩形,然后选择它们并应用转换:
var h = 500;
var w = 500;
var data = [
10,
15,
12,
9,
3
]
var data_two = [
6,
15,
20,
19,
11
]
var vis = d3.select('body')
.append('svg')
.attr({
height: 500,
width: 500
})
.append('g');
vis.selectAll('rect')
.data(data)
.enter()
.append('rect')
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
})
vis.selectAll('rect')
.data(data_two)
.transition()
.duration(1000)
.delay(1000)
.attr({
x: function(d, i){ return 0;},
y: function(d, i){ return i * 15;},
height: function(d){ return 10;},
width: function(d){ return d * 5;}
});
这是一个工作的
数据
只有4个参数?D3应该考虑到这一差异。此外,如果你让他们即使过渡仍然不起作用。你希望发生什么样的过渡?您已经将x设置为0,并且您正在将x设置为0,它将不会移动任何数据。数据
只有4个参数?D3应该考虑到这一差异。此外,如果你让他们即使过渡仍然不起作用。你希望发生什么样的过渡?您已经将x设置为0,并且您正在将x设置为0,它将不会移动任何数据。数据
只有4个参数?D3应该考虑到这一差异。此外,如果你让他们即使过渡仍然不起作用。你希望发生什么样的过渡?您已经将x设置为0,并且您正在将x设置为0,它将不会移动任何数据。数据
只有4个参数?D3应该考虑到这一差异。此外,如果你让他们即使过渡仍然不起作用。你希望发生什么样的过渡?您已经将x设置为0,并且您正在将x设置为0,因此它不会移动。