草庐IT

D3Blocks

全部标签

javascript - 在 d3.js 中更新 layout.pack

我正在努力思考d3的包布局(http://bl.ocks.org/4063530)。我有基本的布局,但我想用新数据更新它。即收集新数据,将其绑定(bind)到当前layout.pack并进行相应更新(更新/退出/进入)。我的尝试在这里(http://jsfiddle.net/emepyc/n4xk8/14/):varbPack=function(vis){varpack=d3.layout.pack().size([400,400]).value(function(d){returnd.time});varnode=vis.data([data]).selectAll("g.node"

javascript - d3.js transition() 在浏览器最小化时不起作用

transition()选择,当新数据进入时,我用来移动svg元素的位置,在浏览器窗口中完美运行已打开,但当我打开另一个选项卡或最小化窗口时,transition()函数会将svg元素堆叠在一起。当我打开窗口时,我看到svg元素堆叠在一起。exit()选择移出屏幕。 最佳答案 D3usesrequestAnimationFrame以实现流畅高效的绘图。这是moreinfo关于这个话题。许多人的基本问题是,当窗口/选项卡处于后台时,页面呈现“进入休眠模式”并且不提供“动画帧”,即浏览器将停止绘制。您可以使用浏览器解决这个“问题”vis

javascript - 如何更改 D3 节点 onclick 的大小

我有一个d3api,其中我显示数字之间的关系我正在使用servlet以json格式获取数据。现在我希望当我单击某个节点时它的大小会更大。我有看到了一个这样的例子,我也试着把它放在我的api中,但它不能正常工作。我发布了我的代码和那个例子的链接。这是我的代码..varlinks=[];varnodes={};//Computethedistinctnodesfromthelinks.varwidth=960,height=500;functionloadNewData(){varsvg=d3.select("#linkAnalysis").append("svg").attr("widt

javascript - d3 折线图任意线填充

我正在尝试使用d3创建一个简单的折线图,但由于某种原因,它会在线和某个中点之间填充。这是输出:我的javascript如下:varwidth=500,height=500,padding=10;varextentVisits=d3.extent(visits,function(obj){returnobj['visits'];});varextentDates=d3.extent(visits,function(obj){returnobj['datestamp'];});varyScale=d3.scale.linear().domain(extentVisits).range([h

javascript - D3 : How do I set "click" event and "dbclick" event at the same time?

我已经将点击事件切换到一个节点,我还想将dbclick事件切换到它。但是,它只会在我点击它时触发点击事件。那么如何同时设置两个事件呢? 最佳答案 您必须进行“自己的”双击检测类似的东西可以工作:varclickedOnce=false;vartimer;$("#test").bind("click",function(){if(clickedOnce){run_on_double_click();}else{timer=setTimeout(function(){run_on_simple_click(parameter);},15

javascript - d3.js 将点击 Action 添加到力布局圈?

我正在努力创建一个具有强制布局的无向图。此外,我尝试通过点击事件改变每个圆圈(节点)的颜色。是否有任何想法在圆形元素上添加此类事件。我尝试了这段代码,但它不起作用。vis.selectAll("circle.node").on("click",function(d){vis.select(d).attr(r,25).style("fill","lightcoral").style("stroke","red");}); 最佳答案 select(d)引用数据,而不是元素。你需要select(this)vis.selectAll("ci

javascript - 给 svg :g element in D3. js 添加一个 title 属性

我正在使用D3.js构建一个在TreeMap中显示数据的应用程序。理想情况下,我想要的是为TreeMap提供一个工具提示,以在TreeMap的每个节点上显示更多信息。树形图从.JSON文件中获取数据。我目前正在使用jquery插件PoshyTip,我可以在其中通过title=属性传递此信息。我知道我需要以某种方式将title属性添加到TreeMap中的svg:g元素,但我不知道在哪里设置每个节点的titleattr。这是我的脚本的开头,我在其中进行所有声明等...vartree=d3.layout.tree().size([h,w-160]);vardiagonal=d3.svg.di

javascript - d3.js的本地化(d3.locale使用示例)

我正在尝试在我的应用程序中使用d3.locale()来显示俄语月份名称。http://jsfiddle.net/j2feJ/2/另外,我需要shortMonths变量是英文的,因为它们在我的数据库中是英文的。varru_RU={"decimal":",","thousands":"\xa0","grouping":[3],"currency":["","руб."],"dateTime":"%A,%e%B%Yг.%X","date":"%d.%m.%Y","time":"%H:%M:%S","periods":["AM","PM"],"days":["воскресенье","пон

javascript - 如何在 d3.js 中加速力布局动画

我正在使用D3.js渲染大约500个节点和它们之间的链接。布局稳定下来(迭代收敛)通常需要10秒。如何加快整个过程,例如,节点在动画期间移动速度快2倍。则时间将是50%(用于迭代的CPU时间应该远少于10秒,但如何减少动画时间)。我试过:在一定次数的for循环中手动管理tick(),比如100次,速度更快,但动画会对用户隐藏,这是一个很大的损失。增加链接强度会有所帮助,节点在动画期间移动得更快。但是布局非常敏感,任何小的拖动都可能导致许多节点移动。有什么建议吗?谢谢。 最佳答案 查看thisthread其中有很多与此主题相关的有用信

javascript - D3.js 链式过渡,用于不同形状的复合动画

我想做什么...我正在使用D3制作复合动画。我有以下最终状态:本质上我想要连接点的动画-添加第一个圆。然后将线画到第二个圆圈。绘制线后,添加第二个圆圈。为了增加一些视觉吸引力,我执行了其他转换,例如在绘制线条时更改第一个和第二个圆的circle半径。我试过的...我可以单独添加圆圈和绘制线条,包括动画。但是,我不确定如何继续将过渡链接在一起以形成复合动画。我已经readabouttransitions/animations,建议使用each("end")。虽然这可以用来绘制初始对象,但直到其他转换之后才会触发结束。问题使用each("end",...)是否是链接转换的正确方法?如何开始