基本的D3.js问题,掌握语法!
我正在使用D3而我想创建一个轴(如果它不存在),或更新一个转换(如果它已经存在)。
我当前的代码如下,但此代码每次重新创建轴 - 它不会转换。如何将其更改为过渡?
var xAxis = d3.svg.axis().scale(x).orient("bottom").ticks(4).tickSize(6, 3, 0);
updateGraphAndAxes(initialdata);
$('#button').click(function() {
updateGraphAndAxes(newdata);
});
function updateGraphAndAxes(newdata) {
// update x.domain here using newdata, then...
svg.append("g")
.attr("class", "x axis")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
}
答案 0 :(得分:1)
关注this example。方法是这样的:
var xAxisGroup = null;
function updateGraphAndAxes(newdata) {
var t = null;
t = svg.transition().duration(1000); // Set up transition
// update x.domain using newdata...
if (!xAxisGroup) {
xAxisGroup = svg.append("g")
.attr("class", "xTick")
.attr("transform", "translate(0," + height + ")")
.call(xAxis);
} else {
t.select('.xTick').call(xAxis); // Call xAxis on transition
}
}