我有一个有 8 个条形图的条形图。现在我想创建一个包含 10 个条形的条形图,其中包含一个过渡。过渡效果很好,但我的新条形图也只有 8 个条形图。我的html:
<html>
<head>
<title>TransitionTest</title>
<script src="d3.v2.js"></script>
</head>
<body>
<script src="TransitionTest.js"></script>
<button onclick="transitioning()">
Transition
</button>
</body>
</html>
我的脚本:
var data = [0,1,2,3,4,5,6,7];
var height = 500;
var width = 1000;
var svg = d3.select("body")
.append("svg")
.attr("class", "svg")
.attr("width", width)
.attr("height", height)
var xScale = d3.scale.linear()
.domain([0,10])
.range([0,width]);
var yScale = d3.scale.linear()
.domain([0,9])
.range([height,0])
var bar = svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("class", "bar")
.attr("x", function (d,i) {
return xScale(i);
})
.attr("y", function (d) {
return yScale(d);
})
.attr("width", function (d,i) {
return (99);
})
.attr("height", function (d) {
return (height-yScale(d));
})
.attr("fill", "grey");
function transitioning() {
data = [8,6,4,2,0,9,7,5,3,1];
bar.data(data)
.transition()
.attr("x", function (d,i) {
return xScale(i/2);
})
.attr ("y", function (d) {
return yScale(d);
})
.attr("width", function (d,i) {
return (49);
})
.attr("height", function (d) {
return (height-yScale(d));
});
}
我在做什么错?