d3.js抛出错误:<;的值无效;g>;属性转换=";空";关于过渡()

d3.js抛出错误:<;的值无效;g>;属性转换=";空";关于过渡(),d3.js,null,rotation,transform,transition,D3.js,Null,Rotation,Transform,Transition,我使用d3.v2.js来呈现饼图,并使用一个刻度盘(在中间)来指向饼图的选定部分。拨号代码如下所示 function createDialIndicator(dialerData, subComponentId, subComponentsCount, group){ var offsetAngle = (360/subComponentsCount)/2; var dialAngle = ((360/subComponentsCount)*(parseInt(subCompon

我使用d3.v2.js来呈现饼图,并使用一个刻度盘(在中间)来指向饼图的选定部分。拨号代码如下所示

function createDialIndicator(dialerData, subComponentId, subComponentsCount, group){
    var offsetAngle = (360/subComponentsCount)/2;
    var dialAngle = ((360/subComponentsCount)*(parseInt(subComponentId.charAt(subComponentId.length-1))))-offsetAngle;
    var dialGroup = group.append("g")
     .attr("class","dialGroup");
    dialGroup.append("path")
     .attr("class","dial")
     .attr("d",dialerData)
     .attr("fill","gold");
    d3.selectAll(".dialGroup")
     .transition()
     .duration(1000)        
     .attr("transform", "rotate(" + dialAngle + ")");
}
function updateDialIndicator(subComponentId, subComponentsCount){
    var offsetAngle = (360/subComponentsCount)/2;
    var dialAngle = ((360/subComponentsCount)*(parseInt(subComponentId.charAt(subComponentId.length-1))))-offsetAngle;
    d3.selectAll(".dialGroup")
     .transition()
     .duration(1000)
     .attr("transform", "rotate(" + dialAngle + ")");
}
我在初始渲染时调用createDialIndicator(),并将updateDialIndicator()更改为指向我单击的组件。 问题是: d3在rotate上的createDialIndicator()中抛出以下错误,但在updateDialIndicator()中没有。我可以知道会有什么问题吗

错误:属性转换的值无效=“null”


问题是没有初始的
transform
属性集用作转换的开始。这就是错误消息的含义。若要修复,只需添加初始旋转:

d3.selectAll(".dialGroup")
 .attr("transform", "rotate(0)")
 .transition()
 .duration(1000)        
 .attr("transform", "rotate(" + dialAngle + ")");

您是否尝试过在转换之前设置初始旋转(0)<代码>d3.selectAll(“.dialGroup”).attr(“transform”,“rotate(0)”).transition()…谢谢Lars,它工作得很好,我将添加它作为参考答案。我遇到了同样的错误,我使用人力车js绘制图表。我应该在哪里添加转换?你可能想问一个单独的问题。