草庐IT

javascript - D3.js 强制布局 - 边缘标签放置/旋转

我是D3.js的新手,我一直在研究强制布局。我尝试过的其中一件事是在链接上放置标签。一种方法是附加svg:text并手动计算translate&rotate,这对直线很有效。但是,如果链接是svg:path(例如arc),这将无法按预期工作。在这些情况下,svg:textPath是建议的解决方案。在thisdemo,您可以看到通过svg:textPath为链接添加标签的简单实现。唯一的问题是,如果源位于目标的右侧,文本将以相反的方向呈现(从我们的Angular来看,从路径的Angular来看它仍然是正确的)。我的问题是,如何处理这个问题?我想出的唯一“解决方案”是,在上述情况下手动交换

javascript - d3 桑基图中的排序节点

我正在尝试对D3sankey中的节点进行排序。我希望将具有较大值的节点绘制得更高。这是相关代码(basedond3noob'scode)片段,我在其中尝试通过使用D3的内置排序功能来实现我想要的。结果不是我所期望的。在检查sankey.js后,我并不完全清楚插件如何对节点进行排序。任何有关该主题的建议将不胜感激。//setupgraphinsamestyleasoriginalexamplebutemptygraph={"nodes":[],"links":[]};data.forEach(function(d){graph.nodes.push({"name":d.source});

javascript - Button doesn't update in Ajax - Rails Tutorial 3 at §12.2.5

我正在学习MichaelHartl的Rails教程,并在§12.2.5遇到了一个小障碍,我们应该在其中使用Ajax创建一个工作按钮。我知道代码是正确的(我直接从书中复制它并重新输入三遍)并且我是新手。但它实际上不起作用!在本教程的这一部分中,我们正在更改常规表单提交按钮以使用Ajax,这样整个页面就不会“刷新”(实际上,重定向到同一页面),而只是按钮和相应的侧边栏项目更新。问题是按钮不会像我期望的那样在单击时自动重新加载。它会在页面刷新时重新加载。如果我在我的浏览器中禁用JS,它会恢复-正如它应该的那样-触发重定向并“刷新”整个页面的HTML版本。如果你想知道,我试过刷新页面,我试过F

javascript - 转换转换的 d3 转换不适用于 DIV

为什么转换属性不适用于D3中的DIV?它适用于任何svg元素,但不适用于“div”。任何替代解决方案?不工作d3.select("div").transition().style("transform","translate(0px,-500px)");工作d3.select("circle").transition().style("transform","translate(0px,-500px)"); 最佳答案 如前所述,d3不支持开箱即用的HTML元素的CSS3转换转换。您必须创建一个自定义字符串插值器来为您做这件事。注意:

javascript - 在 d3.js v4 中重新绑定(bind)导出

我正在使用模块系统创建map。我或多或少习惯了D3.jsv3,但我仍然习惯了v4。我正在尝试添加一个调度,但我不知道如何在V4中重新绑定(bind)导出,因为这个功能现在不可用。因此对于我的分派(dispatch)(_dis)和我的特定事件(“changetype”),d3v3中的重新绑定(bind)将在返回导出之前进行,例如:d3.mapDots=function(districts){var_dis=d3.dispatch('changetype');(...)exports.color=function(_c){if(!arguments.length)returncolor;c

javascript - 使用Web Worker和D3.js异步生成图?

我目前正在解决一个问题,该问题要求我的Web应用程序生成一个代表大约50k到60k数据点的图表。它加载速度相当快(约6秒),但我想知道是否可以使用D3.js在WebWorker中生成图形,然后将SVG传回以加载到页面中。 最佳答案 WebWorker没有DOM访问权限,因此您在这方面所能做的就是构建可用于快速创建DOM的东西。例如,工作人员可以处理数据集并进行所有繁重的计算,然后将结果作为一组数组传回。 关于javascript-使用WebWorker和D3.js异步生成图?,我们在St

javascript - D3树垂直分离

我使用的是D3树布局,例如:http://mbostock.github.com/d3/talk/20111018/tree.html我已根据需要对其进行了修改,但遇到了问题。这个例子也有同样的问题,如果你打开了太多的节点,它们就会变得紧凑,使阅读和交互变得困难。我想在重新调整舞台大小时允许这样的间距的同时定义节点之间的最小垂直空间。我尝试修改分离算法使其工作:.separation(function(a,b){return(a.parent==b.parent?1:2)/a.depth;})那没用。我还尝试计算哪个深度有最多的child,然后告诉舞台的高度为children*spac

javascript - 错误 : SyntaxError: DOM Exception 12 on Tag Creation Using jQuery

我有以下javascript:varorderItemQuantity=$('',{type:'hidden',name:'order_detail[][quantity]',value:itemQuantity});上面的javascript抛出以下错误信息:Error:SyntaxError:DOMException12这个没有错误:varnewListItem=$('',{html:$('#item_name_'+itemId).text()+'('+$('#item_quantity_'+itemId).val()+')'+'Deletethis'+'',id:itemId})

javascript - D3 如何根据下拉框选择更改数据集

我正在尝试根据下拉框选择更新/更改矩形的数据。我尝试了各种方法,但我对D3调度功能的理解还不够深入。如果有人可以更新这段代码,我将不胜感激,这样我就可以看到它在实践中是如何工作的。我有3个带值的数据集,我只是想根据用户在菜单栏中选择的内容更新矩形尺寸。非常感谢,MenuBardata1data2data3varw=100,h=100;varcolor=d3.scale.ordinal().range(["#1459D9","#daa520"]);vards1=[[{x:0,y:12}],[{x:0,y:45}]];vards2=[[{x:0,y:72}],[{x:0,y:28}]];v

javascript - 使用 d3.js 进行日期排序

免责声明:我不知道自己在做什么。说真的,我喜欢数据可视化,我认为自己动手做是学习编程和使用数据库以及像酷人一样制作网络应用程序的好方法。我一直在寻找最后一天的答案,我能找到的所有示例都无法使用我的代码。这是我正在使用的完整代码和数据的粘贴箱。这是在d3.jsgithub上找到的示例折线图,其中填充了我的数据。http://pastebin.com/7aW6wegdjson来自couchdb数据库我可以画线,但它们很乱:我认为这是由于日期排序不正确造成的,因为在控制台中它们是乱序列出的。我不知道如何让日期正确排序。使用d3.time.format会抛出错误(您实际上可以在我从示例折线图中