d3 弧创建不适用于数据绑定

阿姆

我是 D3 和 Javascript 的新手,我想弄清楚为什么这段代码不起作用。错误似乎在最后一个匿名函数中。用a作品替换它

有什么建议吗?

var pi = Math.PI;
var cornerRadius = 20;
var spaceAngle = 10

var percents = [40, 60, 76]

var svg = d3.select("svg"),
    width = +svg.attr("width"),
    height = +svg.attr("height"),
    g = svg.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");

function deriveArcs(angle, i) {
    var arc = d3.svg.arc()
        .innerRadius(180 + i * spaceAngle)
        .outerRadius(240 + i * spaceAngle)
        .cornerRadius(cornerRadius)
        .startAngle(-pi * 0.5)
        .endAngle(-pi * 0.5 + angle / 100 * pi);
    return arc;
}

var a = deriveArcs(30, 0)

g.selectAll("path")
    .data(percents)
    .enter()
    .append("path")
    .attr("d",
        function(d, i) {
            console.log(d+" "+i)
            var aa = deriveArcs(d, i);
            return aa;
        }
    );

铬错误:

d3.min.js:1 错误:属性 d:预期的移动路径命令('M' 或 'm'),“函数 n(){var...”。a @ d3.min.js:1 (匿名) @ d3.min.js:3 Y @ d3.min.js:1 Aa.each @ d3.min.js:3 Aa.attr @ d3.min.js: 3(匿名)@ pie.js:30 pie.js:32 60 1

杰拉尔多·费塔朵

在你的derivedArcs函数中,当你这样做时:

return arc;

您只是返回弧生成器函数本身,而不是它的值。

话虽如此,它应该是:

return arc();

执行弧生成器函数并返回正确的路径。

这是您仅进行该更改的代码:

var pi = Math.PI;
var cornerRadius = 20;
var spaceAngle = 10

var percents = [40, 60, 76]

var svg = d3.select("svg"),
  width = +svg.attr("width"),
  height = +svg.attr("height"),
  g = svg.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");


function deriveArcs(angle, i) {
  var arc = d3.svg.arc()
    .innerRadius(180 + i * spaceAngle)
    .outerRadius(240 + i * spaceAngle)
    .cornerRadius(cornerRadius)
    .startAngle(-pi * 0.5)
    .endAngle(-pi * 0.5 + angle / 100 * pi);
  return arc();
}

var a = deriveArcs(30, 0)

g.selectAll("path")
  .data(percents)
  .enter()
  .append("path")
  .attr("d",
    function(d, i) {
      return deriveArcs(d, i);
    }
  );
<script src="https://d3js.org/d3.v3.min.js"></script>
<svg width="500" height="500"></svg>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

D3强制布局适用于Chrome,但不适用于Firefox

来自分类Dev

mousemove 和 mouseover 不适用于 d3 图表中的最后一个数据

来自分类Dev

D3缩放和平移不适用于整个地图,仅适用于投影

来自分类Dev

转换转换的d3过渡不适用于DIV

来自分类Dev

width属性不适用于d3样式

来自分类Dev

线性渐变不适用于带有d3生成的SVG的Webkit

来自分类Dev

D3:序数刻度不适用于对象数组

来自分类Dev

d3堆叠面积图不适用于对数刻度

来自分类Dev

简单的D3演示不适用于更改的结构

来自分类Dev

动画D3弧,每个绑定数据点都有一个弧

来自分类Dev

D3条形图不适用于所有负值和正值

来自分类Dev

与d3事件绑定

来自分类Dev

Ctrl +空格键绑定不适用于Sublime Text 3中的注释

来自分类Dev

tr -d不适用于回车

来自分类Dev

使用d3中的数据绑定创建轴

来自分类Dev

StreamWriter 不适用于 Android (Unity3D)

来自分类Dev

使d3中的动画弧响应?

来自分类Dev

在D3中绘制分层弧

来自分类Dev

D3定位/控制特定弧

来自分类Dev

适用于mpld3的NetworkX D3 Force Layout插件

来自分类Dev

PyMC3多项式模型不适用于非整数观察数据

来自分类Dev

d3创建对象而不附加

来自分类Dev

在D3中动态创建图例

来自分类Dev

从d3中的系列创建系列

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

d3从JSON路径创建svg

来自分类Dev

用D3创建表

来自分类Dev

d3从数组创建SVG路径

来自分类Dev

D3数学函数创建