Javascript 使用不同的数据集更新条形图无效

Javascript 使用不同的数据集更新条形图无效,javascript,d3.js,visualization,data-visualization,Javascript,D3.js,Visualization,Data Visualization,我正在尝试使用D3.js创建条形图。我最初的要求是根据一组数据创建条形图。每次我按下这里的按钮,它都应该改变 现在将更新第二个数据集的值,但条形图的顺序不会因第二个数据集的不同而改变。请注意,我不想直接排序。相反,我想根据新的数据集更新这些值 var sortBars = function () { iteration_number = iteration_number + 1; //alert(iteration_number); sortOrder = !sortOrder; sortIt

我正在尝试使用D3.js创建条形图。我最初的要求是根据一组数据创建条形图。每次我按下这里的按钮,它都应该改变

现在将更新第二个数据集的值,但条形图的顺序不会因第二个数据集的不同而改变。请注意,我不想直接排序。相反,我想根据新的数据集更新这些值

var sortBars = function () {
iteration_number = iteration_number + 1;
//alert(iteration_number);
sortOrder = !sortOrder;

sortItems = function (a, b) {
    if (sortOrder) {
        return a.value - b.value;
    }
    return b.value - a.value;
};
var xScale = d3.scale.ordinal()
    .domain(d3.range(dataset1.length))
    .rangeRoundBands([0, w], 0.05);

var yScale = d3.scale.linear()
    .domain([0, d3.max(dataset1, function (d) {
    return d.value;
})])
    .range([0, h]);

svg.selectAll("rect")

    .data(dataset1, key)
    .enter()
    .append("rect")
    .attr("x", function (d, i) {
    return xScale(i);
})
    .attr("y", function (d) {
    return h - yScale(d.value);
})
    .attr("width", xScale.rangeBand())
    .attr("height", function (d) {
    return yScale(d.value);
})
    .attr("transform", function (d, i) {
    return "translate(" + [0, d] + ")"
})
    .attr("fill", function (d) {
    return "rgb(0, 0, " + (d.value * 10) + ")";
})

//Tooltip
.on("mouseover", function (d) {
    //Get this bar's x/y values, then augment for the tooltip
    var xPosition = parseFloat(d3.select(this).attr("x")) + xScale.rangeBand() / 2;
    var yPosition = parseFloat(d3.select(this).attr("y")) + 14;

    //Update Tooltip Position & value
    d3.select("#tooltip")
        .style("left", xPosition + "px")
        .style("top", yPosition + "px")
        .select("#value")
        .text(d.value);
    d3.select("#tooltip").classed("hidden", false)
})
    .on("mouseout", function () {
    //Remove the tooltip
    d3.select("#tooltip").classed("hidden", true);
})
    .transition()
    .delay(function (d, i) {
    return i * 50;
})
    .duration(1000)
    .attr("x", function (d, i) {
    return xScale(i);
});

svg.selectAll('text')
    .data(dataset1, key)
    .enter()
    .append("text")
    .text(function (d) {
    return d.value;
})
    .attr("text-anchor", "middle")
    .attr("x", function (d, i) {
    return xScale(i) + xScale.rangeBand() / 2;
})
    .attr("y", function (d) {
    return h - yScale(d.value) + 14;
})
    .attr("font-family", "sans-serif")
    .attr("font-size", "11px")
    .attr("fill", "white");
};

我现在可以更改值了。但我希望这个变化看起来像是在这个图表中交换条形图。但事实并非如此


有人能给我一些线索吗?有人能给我一些线索吗?