D3甜甜圈图不需要的轮廓在插值期间
d3 donut chart unwanted outline during interpolation
我一直在瞎折腾,试图弄清楚为什么这个大纲在甜甜圈图绘制时出现,然后在完成后消失。这是一个浅灰色的轮廓,是那种出现,而插值/反弹影响发生。谢谢你的帮助。
var data = [
{name: "Yo", value: 5500},
{name: "Dawg", value: 3800},
{name: "Dis", value: 2500},
{name: "Pie", value: 2000},
{name: "Doe", value: 1500},
{name: "Yo", value: 5000}
];
var margin = {top: 40, right: 20, bottom: 20, left: 20};
width = 400 - margin.left - margin.right;
height = width - margin.top - margin.bottom;
var chart = d3.select("body")
.append('svg')
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + ((width/2)+margin.left) + "," + ((height/2)+margin.top) + ")");
var radius = Math.min(width, height) / 2;
var color = d3.scale.ordinal()
.range(['red', 'blue', 'yellow', 'orange', 'green', '#ffffff']);
var arc = d3.svg.arc()
.outerRadius(radius)
.innerRadius(radius - 20);
var myScale = d3.scale.linear().domain([0, 360]).range([0, 2 * Math.PI]);
var pie = d3.layout.pie()
.sort(null)
.startAngle(myScale(45))
.endAngle(myScale(405))
.value(function(d) { return d.value; });
var g = chart.selectAll(".arc")
.data(pie(data))
.enter().append("g")
.attr("class", "arc");
g.append("path").attr("fill", function(d, i) { return color(i); })
// .attr("d", arc)
.transition()
.ease("bounce")
.duration(2000)
.attrTween("d", tweenPie);
function tweenPie(b) {
var i = d3.interpolate({startAngle: myScale(45), endAngle: myScale(405)}, b);
return function(t) { return arc(i(t)); };
}
这是小提琴:
http://jsfiddle.net/connorsan/SdN2F/18/在你的tweenpie函数中,你必须将startAngle和endAngle设置为相同的值,以便过渡从一个点开始-否则它会绘制另一个弧来创建上述效果。试着
function tweenPie(b) {
var i = d3.interpolate({startAngle: myScale(45), endAngle: myScale(45)}, b);
return function(t) { return arc(i(t)); };
小提琴:http://jsfiddle.net/SdN2F/22/
相关文章:
- 谷歌地图的插值方法
- SVG实现的单调三次插值没有像d3这样的库
- AngularJS ngTranscluded、angular.noop和插值VS表达式
- AngularJS错误:$interpolate:$routeParams的interr插值错误
- Vue.js-插值错误-如何将样式修改为v-bind:style
- 在已插值的字符串中以角度内插变量
- 在两个值之间插值或“补间”(但不进行动画处理)
- 表达式和插入表达式的插值标记之间的差异
- Highcharts柱状图,从数据表加载时禁用插值
- 如何在d3.js中线性插值transform属性
- 使用Javascript和字符串插值更改html元素的类
- javascript中的Ruby插值在两个实例中的一个实例中不起作用
- 获取字符串中用于插值的字符索引
- unserscore,使用“;{{〃;作为插值符号,我得到了一个例外
- 在d3中,如何从SVG行中获取插值行数据
- angular.js中的静态与动态插值及其性能
- 插值浮动
- 模板文字插值打断空白表
- 使插值双三次函数在ie9中工作
- D3甜甜圈图不需要的轮廓在插值期间