草庐IT

d3_graph_chart

全部标签

javascript - D3.js -- 加载和操作外部数据

我是D3.js的新手,正在研究各种教程/练习/等等,但我对D3的基本需求是加载外部数据(通常是JSON)并根据该数据绘制一些交互式图表。基本的森伯斯特例子是here:我成功地将它适配到我自己的数据上。但是,我希望简化数据的传递并处理D3.js中的一些操作。例如,我想提供一个可以根据需要由D3操作的平面数据文件,而不是为旭日图准备的分层数组。但是,我不确定如何在D3的数据函数之一之外绘制旭日图。我尝试了下面的代码,而不是通过json加载数据,而是将其内联包含在内,因此结构是可见的(不出所料,它不起作用):varw=960,h=700,r=Math.min(w,h)/2,color=d3.

javascript - D3 力布局中的动态链接距离

我已经实现了d3的强制布局。然而对我来说问题是布局没有在屏幕上展开。以下是截图:我希望节点以动态链接距离分布在屏幕上,因为右侧和左侧有很多空白区域。我尝试按如下方式随机化链接距离:d3.layout.force().charge(-800).linkDistance(function(d){return(Math.random()*(400-200)+1);}).size([w,h]);这会增加链接距离,但也会增加垂直方向的距离。我曾尝试设置linkStrength()属性,但它对我不起作用。我怎样才能让这个布局只在水平方向上分布在整个区域?有没有一种方法可以定义链接距离以适合我页面的

javascript - 在 Aurelia 中使用 Chart.js

我想在aurelia项目中使用chart.js,但出现错误。如何将第3方节点包添加到aurelia应用程序?顺便说一句,我正在使用aurelia-cli这是我做的npminstall--savechart.js在aurelia.json中,我添加了以下内容"dependencies":[...,{"name":"chart.js","path":"../node_modules/chart.js/dist","main":"Chart.min.js"}]然后在app.html中添加一行但是,我得到了错误:vendor-bundle.js:1399UnhandledrejectionEr

javascript - d3.format 中的可变精度

我将d3.format("s")与d3.svg.axis.tickFormat一起使用,以使用SI单位(来自国际单位制)很好地格式化刻度标签。它在大多数情况下工作得很好,除了遇到舍入错误并返回大量小数位的某些值(例如1400,1400*0.001=1.4000000000000001)。为了解决这个问题,我可以指定一个精度,例如d3.format(".2s")但这会在1更好的情况下强制使用2位有效数字。例如,如果我有刻度[5000、10000、15000],我现在会看到[5.0k、10k、15k]。最初,当我根本没有指定精度时,我得到了[5k、10k、15k]。我想知道是否可以指定最大

javascript - 面积图有条件填写d3.js

我有一个面积图(应该代表一个时间序列)。我想根据y值给图形上色,这样对于y>c的区域它是一种颜色,对于y这是我生成单色图的代码:varwidth=700,height=400;varvis=d3.select("#chart").append("svg").attr("width",width).attr("height",height);varmpts=[{"x":0,"val":15}];varn=200;for(vari=0;i.5){mpts=mpts.concat({"x":i+1,"val":mpts[i].val*(1.01)});}else{mpts=mpts.conc

javascript - D3.js 对力导向图使用什么算法?

我很想知道D3使用什么算法来实现库中的力导向图功能。看完Kobourov'ssummary力导向图的历史让我有点困惑,不知道库中使用的确切算法或方法(算法/启发式的组合)是什么。D3APIreference说Barnes-Hut算法用于计算作用在物体上的电荷,这是一个O(N*log(N))操作。Kobourov的文章提到Quigley-Eades算法和Hu的算法是利用Barnes-Hut的多级算法。D3中是否以某种方式使用了其中之一?APIwiki进一步说Verlet集成用于粒子定位。sourcecode提到了Gauss-Seidel算法,这又在Hu'salgorithm中提到。和Dw

javascript - 如何在 polymer 中设置动态 Meta 标签和 Open Graph 标签?

我有一个我一直在开发的polymer节点站点,但我不知道如何包含动态元标记和开放图谱标记。Jquery不会工作,也不会使用polymerapi添加节点,因为它会在页面加载后添加所有标签,而facebook将无法读取标签。Google抓取工具确实会呈现该页面,但最好是我可以在header中设置描述。grouppages设置数据并使用服务根据url填充页面,但我不知道如何根据页面更改元标记。有人有什么想法吗?一个想法是获取信息服务器端并将其发送到polymer,但我仍然不确定节点和polymer之间是否可行。 最佳答案 这绝对是一个悬而

javascript - 在 D3.js 中缩放或平移时限制域

我已经实现了一个可以缩放和平移的简单D3.js折线图。它基于StephenBannasch的优秀示例here.我的数据域在x维度上是[0,n]。如何使用内置缩放行为(即使用鼠标滚轮事件)将缩放和平移限制到该域?我想防止用户平移到下端的0或上端的n,例如,他们永远不能看到x轴上的负值,并且希望将缩放限制在同一窗口内。我根据JasonDavies找到的使用extent([...],[...],[...])的示例在版本2.9.1中似乎不再有效。不幸的是,缩放行为目前是少数几个未在其他出色的API文档中记录的功能之一。欢迎任何指点。附言。我在D3.js邮件列表上发布了同样的问题,但没有得到回复

javascript - 调整 d3/dagre-d3 svg 的大小以显示所有内容

我正在尝试使用dagre-d3创建DAG.这些DAG的数据来自数据库,每个DAG都不同,因此,在将所有节点和边添加到图形之前,我不知道要给出包含svg的宽度/高度。所以理想情况下我会调用类似d3.select("#svg1").resize_to_match_contents()的东西添加所有节点和边缘以确保所有节点都可见并且svg不太大之后。当然没有这个功能,我也不知道怎么实现。我知道我可以打电话d3.select("#svg1").attr("height","10")设置高度,但不知道如何检索/计算的高度SVG中的元素是。 最佳答案

javascript - 如何在D3中模拟鼠标移动,以便当您拖动节点时,其他节点会自动移动?

我有一个粘力布局:http://jsfiddle.net/smqsusdw/我有这个功能可以将一个节点拖到一个位置:functionpositionnodes(){force.stop();node.each(function(d,i){if(i===1){d.fixed=true;d.x=100;d.y=100;}}).transition().duration(1000).attr("cx",function(d){returnd.x}).attr("cy",function(d){returnd.y});link.transition().duration(1000).attr(