草庐IT

javascript - D3 区分具有拖动行为的元素的单击和拖动

我无法使用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

javascript - 使用 NodeSize 节点之间的 D3 树布局分离

现在我正试图分离我的矩形节点,因为它们重叠,如下图所示:我看了一下,发现D3提供了一个nodeSize和separation方法,但由于某种原因它不起作用。我找到了这个blogpost谈论这个问题,但他说Thesizepropertydoesn’texistinnodes,soitwillbewhateverpropertyyouwanttocontrolthesizeofthem.但显然有一个nodeSize方法,所以我觉得我只是错误地使用了该方法和/或博客文章已过时。我想将我的节点塑造成矩形的大小,并将它们均匀地隔开,这样它们就不会相互重叠。有谁知道如何正确使用这些方法?关于这些方

javascript - d3 添加多个具有功能的类

我的svg为:我想添加一个与标题相同的类。我试过了d3.selectAll('.user').attr('class','Michael');但是它取代了原来的类。然后我试了一下d3.selectAll('.user').classed('Michael',true);有效!但是现在我想用一个函数返回类名d3.selectAll('.user').classed(function(){returnthis.attr('title');},true);这是行不通的。我该怎么做?谢谢 最佳答案 您可以通过简单地用空格分隔元素的名称来将多

javascript - 将文本标签添加到 Force directed Graph 中的 d3 节点并在悬停时调整大小

我正在尝试将文本标签添加到d3力定向图中的节点,似乎存在问题。这是我的Fiddle:当我像这样添加节点名称时:node.append("text").attr("class","word").attr("dy",".35em").text(function(d){console.log(d.name);returnd.name;});没有变化,但名称正在记录。当我尝试使用boundingbox时,节点标checkout现,但节点堆叠在框的左上角,而节点链接正常。这fiddle是我付出努力的结果。谁能告诉我我做错了什么? 最佳答案 您

javascript - d3更新数据和更新图

我在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

javascript - D3 : Removing Elements

我有一个条形图,可以创建正条和负条。我稍后会尝试删除负条,但现在,即使在附加条之后,如果我尝试立即删除负条,它们仍然会出现。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

javascript - D3 顺序尺度和线性尺度之间的区别

varxScale=d3.scale.ordinal().domain([0,d3.max(data)]).rangeRoundBands([0,w],.1);varyScale=d3.scale.linear().domain([0,data.length]).range([h,0]);我对何时在D3中使用序数或线性尺度感到困惑。以下是我从API文档中发现的内容,仍然有点迷失......如果有人可以提供帮助,我们将不胜感激。序数(x)给定输入域中的值x,返回输出域中的对应值。如果范围是明确指定的(如范围,但不是rangeBands、rangeRoundBands或rangePoint

javascript - 为什么 d3.js v3 在实现缩放时会破坏我的力图而 v2 没有?

我有一个使用d3.js创建的强制布局我希望同时拥有可拖动力布局的正常功能以及缩放功能。我基本上复制/粘贴了(http://jsfiddle.net/nrabinowitz/QMKm3/)中的缩放代码。这与MikeBostock在(http://bl.ocks.org/mbostock/3680957)中使用的缩放方式相同。这是我的代码:http://jsfiddle.net/kM4Hs/6/缩放效果很好,但我无法在强制布局中选择单个节点并将它们四处拖动。我发现罪魁祸首是两位作者都使用d3.v2.js而不是更新的d3.v3.js。当我将导入更改为v2时,它运行良好。但是,如果可能的话,我

javascript - 如何为我的 d3 图表标题设置文本颜色?

我有我的d3图表标题,文本附加在svg上,如下所示:svg.append("text").attr("x",(width/2)).attr("y",0).attr("text-anchor","middle").style("font-size","14px").text(text);引用here但我想将文本颜色设置为其他颜色。这可能吗? 最佳答案 我一直在做.style("fill","darkOrange")然后我发现正确答案是.style('fill','darkOrange')

javascript - 如何使用 D3.js 将图像添加到 svg 容器

我创建了一个示例Asp.NetMVC4应用程序,我在其中使用D3.js附加了一个SVG元素,然后在SVG中附加了一个文本元素(参见下面的代码)。在我尝试使用本地png文件将img附加到SVG之前,这一切都很好。img被附加到DOM,但img没有呈现在页面上。知道我在这里做错了什么,以及如何解决它吗?@{ViewBag.Title="HomePage";}varsvg=d3.select("body").append("svg").attr("width",200).attr("height",100).style("border","1pxsolidblack");vartext=sv