草庐IT

d3dtexture

全部标签

javascript - 在 d3 for javascript 中,如何为数据创建不同的元素?

例如,在html中,一个可能包含和.您将如何将数据绑定(bind)到一个行选择,该行选择将创建偶数列作为奇数为? 最佳答案 所以,这看起来也不完美,但总有html()方法。​vard=[['a','b','c','d']];varr=d3.select('#myTable').selectAll('tr').data(d);r.enter().append('tr').html(function(d){vari,s='';for(i=0;i':'';s+=d[i];s+=(i%2===0)?'':'';}returns;}​​​​​

javascript - d3.js:限制画笔的大小

有没有办法限制画笔的大小,即使范围更大?我整理了一个只有x比例尺的画笔,可以移动和调整大小。我希望能够限制用户可以调整大小的范围(基本上只能达到某个点)。在下面的示例中,当画笔大于最大范围的一半时,画笔函数将停止更新。但是,刷子本身仍然可以扩展。有没有办法防止这种情况发生?或者有更好的方法来处理这个问题吗?非常感谢!在此处查看此代码:http://bl.ocks.org/3691274(编辑:此演示现在有效)bar=function(range){varx_range=d3.scale.linear().domain([0,range.length]).range([0,width])

javascript - 使用 D3 创建 DIV 的动态列表

我一直在使用D3创建精美的动画图表,示例很棒。但是,我正在尝试做一些看似更基本的事情,但遇到了麻烦-将数据绑定(bind)到一个简单的DIV列表。我设置了enter()来初始化不透明度为0的元素,transition()来淡入它们,exit()来淡出并删除它们。enter()和exit()似乎工作正常-然而,当更新包含列表中已有的现有元素时,它似乎被部分删除-包含DIV仍然存在,但内容消失了。我不明白为什么元素的内容会以这种方式改变。我的代码如下:vardata=[...];sorted=data.sort(function(a,b){returnd3.descending(a.id,

javascript - d3 中身份函数 ("function(d) { return d; }"的简写是什么?

查看d3文档,我看到这段代码(身份函数)到处重复:function(d){returnd;}d3中是否有内置方法来执行此操作?我知道我可以创建自己的无操作身份函数并在任何地方使用它,但似乎d3应该提供这个。 最佳答案 我想知道为什么没有d3.identity函数作为库的一部分,而且找不到没有的理由。从性能的Angular来看,定义恒等函数比重用Object构造函数提供更好的性能。如果您在不同类型之间重用相同的标识函数,则差别不大。一些performancetestsarehere.所以在我的例子中,我滥用了D3并自己添加了函数:d3

javascript - 如何避免标签在 D3.js 饼图中重叠?

我正在使用D3.js和一个非常简单的脚本绘制饼图。问题在于,当切片很小时,它们的标签会重叠。我有什么选择可以防止它们重叠?D3.js是否有我可以利用的内置机制?演示:http://jsfiddle.net/roxeteer/JTuej/varcontainer=d3.select("#piechart");vardata=[{name:"Group1",value:1500},{name:"Group2",value:500},{name:"Group3",value:100},{name:"Group4",value:50},{name:"Group5",value:20}];var

javascript - 如何在 D3 圆包中将文本宽度与圆圈大小相匹配

我使用D3显示了一堆不同大小的圆圈,每个圆圈都填充了文本。我坚持找到正确的字体大小,以便文本适合圆圈,具体取决于它的大小和文本的长度。长文本可能应该分成更多行。这是我的代码:vardata={"name":"","children":[{"name":"Thisisatag","value":242},{"name":"Circle","value":162},{"name":"Tree","value":80},{"name":"Mysentenceisverylongandneedsbreaks","value":80},]}vardiameter=300,format=d3.fo

javascript - 我想通过粗细来区分d3.js力图的链接

我想通过粗细来区分链接我有数据。变量“value”表示“thickness”。“值”的范围是0~1。{"nodes":[{"name":"A","group":1},{"name":"B","group":1},{"name":"C","group":1},{"name":"D","group":1},{"name":"E","group":1}],"links":[{"source":0,"target":1,"value":0.9},{"source":0,"target":2,"value":0.8},{"source":0,"target":3,"value":0.7},{"s

javascript - 在 D3 中获取过渡值

我每100毫秒获取一次位置并将它们应用到DOM,如下所示:constdiv=d3.select(container).selectAll('div').data(positions)div.enter().append('div')div.transition().duration(100).style({top:d=>d.y,left:d=>d.x,})div.exit().remove()因此,在获得下一个位置所需的100毫秒内,元素可以平滑地动画到新位置。这很好用。但是我在DOM中有不同的元素,这取决于第一个元素的位置。它们使用相同的位置数据呈现,但在软件的不同模块中。我的问题是

javascript - 将 D3 链接文本显示在右侧

我已经构建了一个D3力导向可视化,在链接上带有文本标签。我遇到的一个问题是,当链接位于其源节点的左侧时,这些标签会上下颠倒。这里的例子:我放置路径和文本的代码如下所示:varnodes=flatten(data);varlinks=d3.layout.tree().links(nodes);varpath=vis.selectAll('path.link').data(links,function(d){returnd.target.id;});path.enter().insert('svg:path').attr({class:'link',id:function(d){retur

javascript - 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)

我正在处理过渡,当过渡应用于不同函数中的选择时,我注意到有些卡顿和闪烁。但是,如果转换与方法链一起应用,它会完全按照规定工作。下面是简单移动一些文本的小例子(Fiddle)。在过渡开始之前,最左边的第一个字符串神奇地传送到页面下方。最右边的第二个字符串从页面顶部到底部平滑过渡。为什么会发生这种“传送”?显然,在单独的函数中应用转换与链接它不同,但有没有办法实现这一点?比方说,我想对许多不同的对象应用相同的过渡——从不同的选择中检索——那么有没有办法在不出现这种卡顿的情况下将过渡降级为它自己的功能?varsvg=d3.select('svg');vartextElem=svg.appen