草庐IT

javascript - D3 绘制数据集的选择性部分

我有一个大型时间序列数据集需要绘制图表,我正在尝试使用D3来完成它。我计划让我的图形的x轴为时间,并允许图形在x方向上移动。我想让图表只加载/显示屏幕上当前时间范围内存在的点。例如,如果我的数据集有1-100次,但图形以显示的时间1-10开始,则图形应该只绘制1-10点。然后用户可能会向右移动并查看时间5-15,图表应相应更新。任何人都可以向我解释如何通过d3完成此操作吗?我很难理解从一次加载并立即绘制整个数据集到选择性地绘制数据子集。 最佳答案 我认为您正在寻找selection.filter()功能。例如你可以有:varallN

javascript - d3.js 缩放仅在光标位于图形像素上时有效

我正在尝试以最简单、最基本的方式在树状图上实现缩放功能,并且已经让它发挥作用。唯一的问题是缩放事件仅在光标位于边缘、节点或文本上时有效。当光标位于svg的任何部分时,如何允许缩放?varmargin={top:20,right:120,bottom:20,left:120},width=2000-margin.right-margin.left,height=2000-margin.top-margin.bottom;varx=d3.scale.linear().domain([0,width]).range([0,width]);vary=d3.scale.linear().doma

graph - d3.js 中的网络多路由正交图

我们想用d3画一个网络路由图,起始节点和结束节点是固定的,但中间的路径不同,可能共享一些节点,例如:我阅读了来自Configurefixed-layoutstaticgraphind3.js的评论并成功创建了一个简单的图形,如:但是当我向图中添加更多节点时,它变得随机(刷新后不是静态的)并且不再是正交的:所以我的问题是:是否可以使用d3.js来绘制接近所需的东西图形?或者有没有我应该在我的工作中使用的算法图实现? 最佳答案 在这里看我的演示。http://jsfiddle.net/doraeimo/JEcdS/主要思想是基于树建立连

javascript - 0 用 d3 系列数据填充空值

我正在使用D3制作多折线图,但在呈现时遇到了一些问题。我正在尝试使用如下所示的数据呈现两行:[{key:"line1",values:[{x:1,y:1},{x:2,y:2}]},{key:"line2",values:[{x:1,y:1},{x:2,y:2},{x:3,y:3}]}]“第2行”渲染得很好,但“第1行”在x=2时停止渲染。我知道我的数据集可能被认为是不完整的,但我很好奇是否有办法将默认值设置为0,其中x有间隙或空值吗?特别是在这个例子中,我希望“第1行”在x=3的地方显示y=0。 最佳答案 D3和NVD3没有执行此操

javascript - 将使用 D3js 创建的 SVG 转换为 PNG

我有一些用D3js创建的图表,我想通过JavaScript将其转换为PNG图像,以便用户可以下载图表。我见过将SVG转换为Canvas并将Canvas转换为图像的解决方案。这对我不起作用,因为SVG使用类来设置元素的样式(由于可维护性,我宁愿不更改),这会导致整个Canvas变成黑色并带有非常粗的线条。是否可以将SVG图表直接转换为PNG?该页面位于RubyonRails项目中,因此它不必是纯JavaScript解决方案,但我更愿意使用JavaScript来执行此操作,这样我也可以在其他项目中实现它。 最佳答案 要在Canvas中显

javascript - 使用 d3.js 计算 CSV 文件的行数

假设我有这个CSV文件Day,What2013-10-27,Apple2013-10-27,Cake2013-10-27,Apple2013-10-28,Apple2013-10-28,Apple2013-10-28,Blueberry2013-10-28,Orange我想用D3.js绘制一个时间序列图。我需要做的就是显示每天的行数总和。例如,11月27日的值应为3,28日的值应为4。有什么方法可以存档吗?我一直在尝试从CSV数据集创建一个新数据集,但没有取得积极成果。vardataset;d3.csv("data.csv",function(d){return{Day:newDate

javascript - D3和双向数据绑定(bind)

我对使用datadrivendocuments的当前最佳实践和解决方案感兴趣具有双向AJAX数据绑定(bind)的库。更具体地说,我想知道如何d3最好与支持双向数据绑定(bind)的库集成,例如Angular或Knockout.出现的明显冲​​突源于以下事实:d3和AJAX库都将数据插入到DOM,这基本上意味着一个必须包装另一个。 最佳答案 关于DOM上的数据您担心插入DOM的数据。这是一些添加的属性:D3js:__data__,__onmouseover.force,__onmouseout.force,__onmousedown

javascript - 不寻常的 d3 放大可重用类 - this 和 bind

一段时间以来,我一直在为这个问题绞尽脑汁......我在js中有一个常用的构造函数/原型(prototype)对象(如类),它包含我所有的d3图表逻辑:figureGen=function(html_element){this.svg=d3.select(html_element).append('svg').style('width','100%').style('height','100%').append('g').attr("class","sadrzalac").attr("transform","translate("+0+","+0+")");this.element=e

javascript - 使用 D3.js 的分组堆栈图

我是D3的新手,遇到了一些问题。想知道是否有人可以提供帮助。我正在尝试使用d3创建分组堆栈图。该图的性质是每组有2个柱,第二个柱的值取决于第一个柱。我希望第二个栏是我在第一个栏上的分割。一个简单的例子是,如果第一条上的值是{x:0,y:3,y0:0},第二条应该是{x:0,y:1,y0:0},{x:0,y:1,y0:1},{x:0,y:1,y0:2}因此对于第一个条形图绘制的数据:{"series":"A","values":[{"x":0,"y":1,},{"x":1,"y":2,},{"x":2,"y":3,},{"x":3,"y":1,},{"x":4,"y":3,}]},{"s

javascript - 强制 d3 折线图忽略空值

我有一个包含空值的时间序列折线图,因此在我的线条中留下了空白。我想要做的是选择性地让d3线生成器忽略空值并跨越间隙。如图所示,蓝色系列有间隙。我的部分问题是我已经对这种数据格式进行了标准化:[{"x":1397102460000,"y0":11.4403,"y1":96.5},{"x":1397139660000,"y0":13.1913,"y1":96.5},{"x":1397522940000,"y1":96.5},...]因此,当一个系列具有特定时间戳的读数时,另一个系列具有空值。最终,我可以尝试通过在绘制之前过滤我的数据来解决这个问题,但我希望有一个更聪明的解决方案,也许是关于