我正在尝试将startAngle用于D3中的饼图布局,以确保饼图的第一个切片始终从90度开始绘制:
var pie = d3.layout.pie()
.sort(null)
.value(function(d) { return d.amount; })
.startAngle(90 * (Math.PI/180));
Run Code Online (Sandbox Code Playgroud)
这有效,但我发现馅饼现在完成90度短:
http://jsfiddle.net/qkHK6/105/
我能解决这个问题的唯一方法是强制结束位置,如下所示:
.endAngle(450 * (Math.PI/180))
Run Code Online (Sandbox Code Playgroud)
但这似乎是一个黑客.有没有正确的方法来做到这一点?文档说使用startAngle
将饼图布局的整体起始角度设置为以弧度为单位的指定值
所以我假设馅饼的其余部分将相应地绘制并与它开始的地方相匹配......
Lar*_*off 13
如果设置startAngle
为静态值,则对于所有饼图切片都是相同的,即它们都将在相同位置开始.对于你想要做的事情,你实际上并不需要修改饼图布局的角度(因为这是首先计算它们的角度),而是用于绘制饼图的弧形发生器的角度.段.
例如,要旋转90度,请执行此操作
var arc = d3.svg.arc().outerRadius(r)
.startAngle(function(d) { return d.startAngle + Math.PI/2; })
.endAngle(function(d) { return d.endAngle + Math.PI/2; });
Run Code Online (Sandbox Code Playgroud)
在这里完成jsfiddle .
归档时间: |
|
查看次数: |
7088 次 |
最近记录: |