我正在使用d3.js树,并希望动态添加节点,而不是预加载整个树。我将如何修改以下内容以便在单击节点时动态添加其他JSON节点?(见下面的链接和下面的代码)http://mbostock.github.com/d3/talk/20111018/tree.html因此,我不想预加载整个树,而是希望仅在单击父节点时检索子节点。我可以在切换函数中检索子节点的json,但是我不知道如何将它们添加到树中。varm=[20,120,20,120],w=1280-m[1]-m[3],h=800-m[0]-m[2],i=0,root;vartree=d3.layout.tree().size([h,w]
我知道svg有一个内置函数来做圆Angular,但我只需要在四个Angular中的两个上做圆Angular。我知道我可以在彼此的顶部绘制多个矩形来模仿它,但这看起来有点俗气。有什么方法可以使用剪辑或任何d3.js方法来实现吗?现在我有一个水平条形图,其矩形如下:rects.enter().append("rect").attr("x",function(d,i){returnx(0);}).attr("width",function(d){returnx(d.value)-x(0);}).attr("height",y.rangeBand()).attr("y",function(d)
我是一名HTML/CSS开发人员,正在研究用于构建“家谱”的javascript解决方案,该家谱需要以一种有意义的方式展示婚姻(当然,来自家庭之外)。本质上,我正在考虑将其基于基于d3.js的树状图,例如http://bl.ocks.org/4063570,但我一直在努力寻找任何表达“婚姻”的东西。下面是我将基于的数据的图像:任何帮助/建议/链接将不胜感激!我只是不知道它是否可行,但我很想使用d3.js,因为它看起来制作精良,而且显然用途广泛。 最佳答案 有一些选项,但我相信每个选项都需要一些工作。如果有一个单一的标准来表示JSON
在d3.jsv4中,d3.transform方法已被删除,没有任何关于如何替换它的提示。有谁知道如何替换下面的d3.jsv3代码?d3.transform(String).translate; 最佳答案 编辑2016-10-07:有关更通用的方法,请参阅下面的附录。根据变更日志,它已经消失了。transform/decompose.js中有一个函数,但是,它会进行内部使用的计算。遗憾的是,它没有公开供外部使用。也就是说,即使不使用任何D3,这也很容易完成:functiongetTranslation(transform){//Cre
我无法使用D3.jsv3成功区分元素上的click事件和drag事件。下面代码中的圆圈指定了拖动行为和click监听器。DemoherevardragGroup=d3.behavior.drag().on('dragstart',function(){console.log('StartDraggingGroup');}).on('drag',function(d,i){d.x+=d3.event.dx;d.y+=d3.event.dy;d3.select(this).attr("transform","translate("+d.x+","+d.y+")");});vardragCi
现在我正试图分离我的矩形节点,因为它们重叠,如下图所示:我看了一下,发现D3提供了一个nodeSize和separation方法,但由于某种原因它不起作用。我找到了这个blogpost谈论这个问题,但他说Thesizepropertydoesn’texistinnodes,soitwillbewhateverpropertyyouwanttocontrolthesizeofthem.但显然有一个nodeSize方法,所以我觉得我只是错误地使用了该方法和/或博客文章已过时。我想将我的节点塑造成矩形的大小,并将它们均匀地隔开,这样它们就不会相互重叠。有谁知道如何正确使用这些方法?关于这些方
我的svg为:我想添加一个与标题相同的类。我试过了d3.selectAll('.user').attr('class','Michael');但是它取代了原来的类。然后我试了一下d3.selectAll('.user').classed('Michael',true);有效!但是现在我想用一个函数返回类名d3.selectAll('.user').classed(function(){returnthis.attr('title');},true);这是行不通的。我该怎么做?谢谢 最佳答案 您可以通过简单地用空格分隔元素的名称来将多
我正在尝试将文本标签添加到d3力定向图中的节点,似乎存在问题。这是我的Fiddle:当我像这样添加节点名称时:node.append("text").attr("class","word").attr("dy",".35em").text(function(d){console.log(d.name);returnd.name;});没有变化,但名称正在记录。当我尝试使用boundingbox时,节点标checkout现,但节点堆叠在框的左上角,而节点链接正常。这fiddle是我付出努力的结果。谁能告诉我我做错了什么? 最佳答案 您
我在d3中有以下简单的行,但在尝试弄清楚如何将data2传递给它并更新行以反射(reflect)更改时没有问题。D3LineChartDemoUpdatevardata=[3,7,9,1,4,6,8,2,5];vardata2=[3,7,9,1,4,6,8,2,15];varwidth=600;varheight=400;varmax=d3.max(data);x=d3.scale.linear().domain([0,data.length-1]).range([0,width]);y=d3.scale.linear().domain([0,max]).range([height,0
我有一个条形图,可以创建正条和负条。我稍后会尝试删除负条,但现在,即使在附加条之后,如果我尝试立即删除负条,它们仍然会出现。varmargin={top:30,right:10,bottom:10,left:10},width=750-margin.left-margin.right,height=data.length*20//500-margin.top-margin.bottom;varx=d3.scale.linear().range([0,width*.85])//chart1.x=x//chart1.y=yvary=d3.scale.ordinal().rangeRound