草庐IT

d3-tooltips

全部标签

javascript - 如何使用 d3.js 计算给定 x 的 y 值

我用d3.js定义了一个线生成器,如下所示:varline=d3.svg.line().interpolate("monotone").x(function(d){returnx(d.date);}).y(function(d){returny0(d.visits);});数据是从具有以下格式的csv中读取的:date,visits12/08/12,113/08/12,014/08/12,015/08/12,3316/08/12,28csv文件被载入data,解析为:data.forEach(function(d){d.date=d3.time.format("%d/%m/%y").p

javascript - D3 .merge函数

尽管我无数次通读了D3API,但我仍在努力理解D3中的合并功能。API说:“此方法通常用于合并数据连接后的输入和更新选择。在分别修改输入和更新元素后,您可以合并两个选择并对两者执行操作,而无需重复代码。"这是一个在力导向图表中假定直接使用它的示例,其中每次报价都会调用已报价的函数:varsimulation=d3.forceSimulation(nodes).force("charge",chargeForce).force("center",centerForce).on("tick",ticked);functionticked(){varu=d3.select("svg").se

javascript - d3 附加带有 svg 扩展名的图像

我正在尝试将扩展名为“.svg”的svg图像添加到我的图表(另一个使用d3创建的svg图像)。这是代码:d3.select("#chart1svg").append("svg:image").attr("xlink:href","img/icons/sun.svg").attr("width",40).attr("height",40).attr("x",228).attr("y",53);如您所见,我正在设置“xlink:href”属性,但d3在浏览器中将其更改为href:事实上,如果我使用png扩展,这段代码可以完美运行。有什么想法吗? 最佳答案

javascript - D3.js: select ("body").selectAll ("p") 和 selectAll ("p") 之间的区别?

谁知道有什么区别?我的理解是两者都会返回相同的选择。但是,当我进行追加时,如果我使用selectAll("p")它不起作用。例如,这个有效:varfoo=d3.select("body").selectAll("p").data([1,2,3,4]);foo.enter.append("p")虽然这不起作用:varfoo=d3.selectAll("p").data([1,2,3,4]);foo.enter.append("p")为什么后者不起作用? 最佳答案 这里的简短回答是,“因为没有什么可以追加的。”虽然您是正确的,d3.se

javascript - 使用 d3 遮蔽两条线之间的区域

所以我有一个图表绘制流量与日期和费率与日期。我试图遮蔽两条线之间的区域。但是,我想根据哪条线更高将它着色为不同的颜色。以下工作没有最后一个要求:vararea=d3.svg.area().x0(function(d){returnx(d3.time.format("%m/%d/%Y").parse(d.original.date));}).x1(function(d){returnx(d3.time.format("%m/%d/%Y").parse(d.original.date));}).y0(function(d){returny(parseInt(d.original.traff

javascript - 如何在 D3 折线图上安装可变长度刻度标签?

这是一个JSFiddle:http://jsfiddle.net/8p2yc/(此处稍作修改的示例:http://bl.ocks.org/mbostock/3883245)正如您在JSFiddle中看到的,沿y轴的刻度标签不适合svg。我知道我可以增加左边距,但问题是我事先不知道数据是什么。如果我只是将页边距设置得非常大,如果数字的长度很短,图表就会显得很尴尬。有没有办法在创建图表时预先计算最大标签宽度以正确设置边距?或者也许有一个完全不同的解决方案?varmargin={top:20,right:20,bottom:30,left:50},width=400-margin.left-

javascript - jquery .ready() 等同于 d3js?

目前我正在HTML添加所有javascript在丑化为文件并使用这些jquery函数检查文档准备好之后$(document).ready(function(){});OR$(function(){});是否有任何d3js等效于删除使用这些jquery函数? 最佳答案 一个你可以简单地把body底部的标签标签。B您可以添加DOMContentLoaded事件并在其中插入您的d3js代码。document.addEventListener("DOMContentLoaded",function(e){/*YourD3.jshere*/}

javascript - 如何在 v4 中的 d3.js 中拖动时设置原点

这个问题在这里已经有了答案:d3version4workaroundfordragorigin(1个回答)关闭6年前。我在拖动时遇到跳转问题.在此question他们建议使用drag.origin()但是D3v4版本没有这个方法了。有人可以建议如何解决跳转问题吗?

javascript - 将 d3.csv 方法转换为 d3.csv.parse 方法

我只需要绘制从sql查询中检索到的数据的d3条形图,因此我没有tsv或csv文件,而是一串csv格式的数据。我知道我可以使用d3.csv.parse方法,但不知何故我无法弄清楚如何使用文件中的数据将csv条形图的示例代码转换为字符串变量中包含的数据的csv.parse方法。这里是csv文件的示例代码:d3.csv("data.csv",type,function(error,data){x.domain(data.map(function(d){returnd.letter;}));y.domain([0,d3.max(data,function(d){returnd.frequenc

javascript - DOM 节点清理在 d3 中如何工作?

我正在主干View中使用D3进行图形可视化。我允许用户捏缩放图形,使用webkit转换平滑过渡,并在发布时重绘。为了保持代码简单,我只是以新的比例重新绘制图形,而不是重新计算元素的新位置和大小(这是我最初的方法,但我的团队要求重新绘制路线)。[我通过推特与Bostock进行了交谈。这实际上不是首选的做事方式]我注意到的是,对于每次重绘,我都会丢弃大量未清理的dom节点。这与事件处理程序/闭包中的循环引用无关,因为我已经禁用了除我的标签之外的所有内容(这些标签没有附加处理程序),并且发生了相同的行为。我已经尝试过积极地从图中删除元素,但dom节点似乎仍然存在泄漏。这是一些相关的代码。'r