草庐IT

d3-force-directed

全部标签

javascript - 如何将 D3 JavaScript 中的 'this' 转换为 TypeScript?

我知道JavaScript中的“this”与TypeScript中的含义不同,根据这篇文章'this'inTypeScript.我有以下JavaScript代码,用于在所选节点上创建较粗的笔划,并为所有其他节点提供较小的笔划。node.on('click',function(d){d3.selectAll('circle').attr('stroke-width',1.5);d3.select(this).select('circle').attr('stroke-width',5);})在TypeScript中我有this.node.on('click',(d:any)=>{this

javascript - d3.js 如何向条形图添加线条

我有一个包含4个值的数据集。[ABCD]。目前它们显示在条形图中,每个值一个条。现在,由于值c和d是平均值,我想将它们显示为a和b栏后面的线。d3可以吗?如何在同一个数据数组中切换条形或线形显示?感谢您的帮助。 最佳答案 我在这里发布了一个示例,因为没有一个答案在jsbin或jsfiddle等中提供了带线的条形图的工作示例。http://jsbin.com/gisinomo/1/edit该示例是d3wiki上简单条形图的一个分支。http://bl.ocks.org/mbostock/3885304CSSbody{font:10px

javascript - 是否有检查 js 变量是否是 d3 选择?

我的函数中有一些变量。如果其中第一个是d3选择,我想使用它,否则我想使用默认选择。如何检查变量是否为d3选择? 最佳答案 检查变量sel是否为d3.selection:varisselection=selinstanceofd3.selection; 关于javascript-是否有检查js变量是否是d3选择?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/14166000/

javascript - 通过 D3 绘制 HTML 表格不会更新现有数据

我正在使用D3绘制HTML表格,输入时一切正常。当我将新项目添加到我的数据集合时,它会将新项目正确添加到表中。问题是每当我更新集合中的现有对象(下面backgroundJobs集合中的对象)时。当我重新运行D3代码来同步表时,它不起作用。没有任何反应。代码如下:varvisibleColumns=['Name','Start','End','Status','Metadata','Errors'];vartable=d3.select('#jobs').append('table');varthead=table.append('thead');vartbody=table.appen

javascript - 用 d3.js/c3.js 替换图表数据集

DEMOHERE在演示中,我试图卸载所有当前数据集并加载新数据集,如下所示:使用C3.jschart.unload();chart.load({columns:[['data1',130,120,150,140,160],['data2',30,20,50,40,60,50],],});这显然不是处理该过程的正确方法,因为演示显示它无法正常工作。C3教程中说数据集应该这样替换:chart.load({columns:[['data1',130,120,150,140,160],['data2',30,20,50,40,60,50],],unload:['data3','data4','

javascript - 我在 d3.js 中定义了一条路径,它绘制正确,但 .getTotalLength() 未定义

以下代码根据数据生成路径。varpath=gameBoard.append('path').attr("id","snake"+snakeIndex).attr("d",interpolator(data)).attr('stroke-width',snakeStroke).attr('fill','none').attr('stroke',config.snakeColor);数据定义的弯曲路径绘制正确。此处未定义getTotalLength()失败:vartotalLength=path.getTotalLength();此外,getPointAlongLength()也未定义:v

javascript - 如果我遵循正常的 D3 方式,我是否将 eventListener 添加到每个 SVG 元素?

在d3中处理onclick的正常方式是selection.append(element).on("click",someFunction)如果我在1000个svg元素上这样做,是否意味着我只是附加了1000个不同的监听器。如果是这种情况,是否有专门针对d3的事件委托(delegate)? 最佳答案 @AlexWanswer是(部分)正确的:D3中没有事件委托(delegate),只有事件绑定(bind)。但是,我说部分是因为最好说“D3中没有用于事件委托(delegate)的本地方法”,因为实际上它很容易实现:使用D3进行事件委托(

javascript - d3.js:将数据从父节点传递到子节点

我正在使用d3制作堆积条形图。数据是一个数组,每个条都有一个对象(例如“喜欢”)。然后每个对象都包含一个值数组,这些值驱动每个条形图的各个矩形:data=[{key='likes',values=[{key='blue-frog',value=1},{key='goodbye',value=2}]},{key='dislikes,values=[{key='blue-frog',value=3},{key='goodbye',value=4}]}]图表工作正常,如下所示://Createcanvasbars=svg.append("g");//Createindividualbars,

javascript - D3.js ~ 有没有办法将 csv header 值访问到下拉列表中?

我正在构建一个交互式图表,因为轴的值有两个标题值。如果我可以从下拉菜单或类似的菜单中选择轴值,那就更好了。我不知道是否可以访问我的csv的header值,就像它们是数组的一部分一样,所以我可以制作一个下拉菜单以供选择。给定一个包含许多header值的.csv,并且它们都是字符串,是否可以通过使用d3.csv.formatRows(rows)来实现这一点?我试图在回调函数中使用它:varheader=d3.csv("MyCsvFile.csv").formatRows(0);console.log(header);但是没用。我什至不确定我是否使用了正确的功能,或者是否有这样做的功能!任何

javascript - 如何运行 Mike Bostock 的 D3 示例?

我一直在尝试运行MikeBostock的See-ThroughGlobe例如,但是如果您尝试在本地复制它,对他的json文件的引用是不正确的。问题来自这行代码:d3.json("/mbostock/raw/4090846/world-110m.json",function(error,topo){varland=topojson.feature(topo,topo.objects.land),grid=graticule();});我遵循了这个例子:d3:usstatesintopojsonformatfilesizeiswaytoolarge并尝试更改这些变体的url以更好地为外部用