草庐IT

D3Blocks

全部标签

javascript - svg、d3、dagre、dagre-d3 和 graphlib 如何相互依赖?

我使用dagre绘制有向图,但我想了解svg、d3、dagre和graphlib如何相互依赖?基本上,一个停止,另一个开始。我将尝试指出我在有限的理解下可以收集到的内容。svg:(是一种基于XML的矢量图像格式,但基本上它)是一个html标签,您可以使用它绘制圆形、椭圆形、矩形等,然后使用g元素对两个或多个形状进行分组并应用转换等。d3:d3是一个javascript库,它基本上允许您将数据与svg结合起来。因此,您不必每次都编写svg标签,您基本上可以使用编程、循环、数据等来创建svg代码。现在谈到dagre,dagre-d3和graphlib是我遇到的问题假设我上面说的一切都有意义

javascript - 同一页面上的多个脚本版本 (d3.js)

我需要在同一个页面上有多个版本的javascript库。如果不手动重构一个版本以避免命名冲突,我该如何实现这一目标?关于如何使用Jquery执行此操作的示例很多(example)。然而,这似乎依赖于jQuery的优点。我如何为任意脚本执行此操作?更多细节:我正在使用d3.js,我正在插入其他人使用d3制作的可视化效果。问题是,其中一个可视化项需要一个版本的d3,另一个需要更新的版本。这两个可视化应该在同一页面上可用-用户通过单击缩略图交换显示哪个可视化,然后使用js隐藏一个可视化并构建另一个可视化。因此,似乎交换脚本而不是以无冲突的方式加载两者也是一种选择。

javascript - 如何确保 D3 在 javascript 运行之前完成加载多个 CSV?

我正在使用D3将其他CSV文件列表的CSV加载到javascript中。当我运行以下代码时,employees数组在代码中到达它时仍然是空的。有没有正确的方法来确保D3在javascript继续之前完成加载数据?varemployees=[];//Retrievethefilelistofallthecsvsinthedatadirectory,thenrunacallbackonthemfunctionretrieveList(url,callback){d3.csv(url,function(data){callback(data);})}//Parseafilelist,andt

javascript - d3 javascript中的变量范围

我想使用以下代码获取全局变量中的数据:vardata;d3.json("file.json",function(json){data=json;console.log(data);//defined});console.log(data);//undefined但问题是我只是在d3.json函数中定义了数据变量,但它是未定义的。我该如何解决这个问题?谢谢 最佳答案 因为d3请求(如d3.json)是异步的,所以最好将所有依赖于外部请求的代码包装在请求回调中,确保此代码可以访问数据执行前。FromtheD3docs:"异步加载数据时,

javascript - d3.scaleBand 是如何工作的?

如何从thisexample制作行varx=d3.scale.ordinal().rangeRoundBands([0,width],.05);使用d3.scaleBand在d3v4中工作? 最佳答案 在D34.x中,ordinal.rangeRoundBands已替换为band.rangeRound(因此,不再有rangeRoundBands)。除此之外……Thenewband.padding,band.paddingInnerandband.paddingOutermethodsreplacetheoptionalargumen

javascript - 如何使用 d3 v4 设置固定链接距离

所有API示例似乎仍然适用于v3。我试图了解如何创建具有固定距离链接的力图,例如:http://bl.ocks.org/d3noob/5141278我查看了link_distance但不确定如何应用它:https://github.com/d3/d3-force/blob/master/README.md#link_distance创建这样的图表:letsimulation=d3.forceSimulation().force("link",d3.forceLink().id(function(d){returnd.id;})).force("charge",d3.forceManyB

javascript - d3 时间刻度 x 轴与 unix 时间戳

使用d3js格式化此时间序列图表的x轴时遇到问题。这是一个工作示例:http://tributary.io/inlet/7798421问题:我只能在x轴上看到1个日期(标签),无论指定的刻度总数如何。如何在x轴上以4-6个刻度显示时间?编辑:下面感谢Lars的解决方案。这是我在UTC的时间:vardata=[{"time":1387212120,"open":368,"close":275,"high":380,"low":158},{"time":1387212130,"open":330,"close":350,"high":389,"low":310},{"time":13872

javascript - D3js 如何在 .enter 上下文中追加 2 个相同级别的 child

这个问题在这里已经有了答案:Canenter()selectionbereusedafterappend/insert?(1个回答)关闭6年前。我在尝试在.enter()上下文中将一个圆圈和一个文本放入一个组(同一级别,而不是彼此内部)时遇到问题varcategorized=g1.selectAll("g.node").data(dataset,function(d){returnd.id})categorized.enter().append("g").attr("id",function(d,i){returnd.id;});categorized.enter().append("

javascript - 用渐变颜色绘制一个 D3 圆

如何画一个渐变色的圆?比如,从黄色到蓝色的渐变。通常,要创建一个黄色的圆圈,我们可以使用以下代码:varcdata=[50,40];varxscale=40;varxspace=50;varyscale=70;varsvg=d3.select("body").append("svg").attr("width",1600).attr("height",1600);varcircle=svg.selectAll("circle").data(cdata).enter().append("circle");varcircleattr=circle.attr("cx",function(d)

javascript - 如何从 D3 v5 中的 CSV 文件加载数据

我正在尝试从D3中的CSV文件加载数据;我有这段代码:functionupdate(error,data){if(error!==null){alert("Couldn'tloadthedataset!");}else{//dosomething};functionchangeData(){d3.csv("data/dataset.csv",update);}如果我使用D3v4它工作正常,但如果我切换到v5它就不再工作了。有人可以向我解释如何修改代码以使其适用于D3v5吗? 最佳答案 d3v5使用fetchAPI并返回需要以下代码的