D3.js在数据源之间切换时的过渡条形图
D3.js transition bar chart when switching between data sources
>我正在使用D3.js来创建条形图。我有几个源 CSV 文件,我根据用户输入在它们之间切换:
onclick="showFoo();"
onclick="showBar();"
然后:
function showFoo(){d3.csv("teams/foo.csv",type,update)}
function showBar(){d3.csv("teams/bar.csv",type,update)}
function update(error, data) {
x.domain(data.map(function(d){return d.category;}));
y.domain([0,1]);
chart.select(".x.axis").remove();
chart.append("g")
.attr("class","x axis")
.attr("transform","translate(0," + height + ")")
.call(xAxis)
.selectAll("text")
.style("text-anchor","start")
.attr("transform","rotate(-90)");
chart.selectAll(".bar").remove();
chart.selectAll(".bar")
.data(data)
.enter()
.append("rect")
.attr("class","bar")
.attr("x",function(d){return x(d.category);})
.attr("y",function(d){return y(d.value);})
.attr("height",function(d){return height - y(d.value);})
.attr("width",x.rangeBand());
};
我正在为我的 x 轴使用序数刻度。数据文件具有不同数量的类别。我想做的是动画两个数据源之间的切换。具体来说,让第一个条形下拉并消失在 x 轴下方,然后让新条形从下方弹出。我是D3菜鸟,找不到这种行为的例子。
使用过渡进行动画
对于移除:
chart.selectAll(".bar")
.transition()
.duration(300)
.ease("exp")
.attr("width", 0).remove()
用于创建
chart.selectAll(".bar")
.data(data)
.enter()
.append("rect")
.attr("class","bar")
.transition()
.duration(300)
.attr("x",function(d){return x(d.category);})
.attr("y",function(d){return y(d.value);})
.attr("height",function(d){return height - y(d.value);})
.attr("width",x.rangeBand());
相关文章:
- 用chart.js绘制条形图
- d3.js用按钮更新条形图工具提示
- 添加新数据时D3.JS条形图列偏移量
- Chart.js条形图:网格颜色和隐藏标签
- Chart.js 2.1.2条形图动画问题
- d3.js条形图转换无法正常工作
- d3.js组条形图不起作用
- 图表.js:条形图点击事件
- Raphael.js条形图及教程
- d3.js条形图未根据单击事件进行更新
- Chart.js条形图标签在悬停时被隐藏
- 将两个图形(饼图和条形图)并排对齐::d3-js
- D3.js条形图未显示
- D3.js更新堆叠条形图
- dc.js中带计数的条形图
- 如何为angular js条形图添加事件
- D3.js条形图:不显示 .text
- 如何在 d3.js 中创建分层条形图
- 动态生成条形图:JS, Jquery, CSS
- 在条形图Js 2.1.6上显示数据集值