草庐IT

javascript - d3-js 的 Force-Directed Layout 是否支持图像作为节点?

d3有ademoofaForce-DirectedGraphLayout.我希望图中的所有节点都是图像,而不是圆圈。所以,我变了.append("svg:circle").attr("class","node").attr("cx",function(d){returnd.x;}).attr("cy",function(d){returnd.y;}).attr("r",5).style("fill",function(d){returnfill(d.group);}).call(force.drag);到.append("xhtml:img").attr("src","http://a

javascript - 是否可以线性渐变填充 SVG 中的分组路径(通过 jQuery 事件上的 css 或 attr)

我如何为填充一个渐变?在SVG图像中而不是填充所有s在选定的?在这种情况下,我想展示非洲,只填充一个从黄色到红色的渐变,但由于子组的原因,填充会产生许多渐变。JavaScript:functionsvgOver(){varwhat=$(this).attr("id");$("#world#"+what,svg.root()).attr("fill","url(#red_black)");}functionsvgOut(){$(this).attr("fill","");}...$("#map").svg({loadURL:'http://teszt.privilegetours.hu/

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.js 从单独的文件中绘制多个数据集

我正在尝试使用来自两个tsv文件的两组数据绘制散点图。但是,每个都以单一刻度共享x轴。有两个y轴,每个轴都有自己的刻度。我现在拥有的图表将在视觉上有所帮助。问题是,第二个数据集(橙色)仅部分绘制在a轴上约15,000处的污点处。它真的应该是一条更大的线。此外,当我运行它时,有时会呈现第二个数据集,而现在会呈现第一个数据集。不知道为什么会这样..这是两个(可能)相关的代码块://1stdatasetd3.tsv("datatest4.tsv",function(error,tsv1){tsv1.forEach(function(d){d.altit=+d.altit;d.tmp=+d.t

javascript - JQuery $(this).attr ("name") 与 this.name

主要区别是什么$(this).attr("name")和this.name技术解释是什么? 最佳答案 第一个从DOM元素形成的jQuery对象中获取属性值。第二种方法直接从DOM元素获取属性,因此速度更快。您应该尽可能使用原生属性。 关于javascript-JQuery$(this).attr("name")与this.name,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2

javascript - 右键单击 d3.js 元素 : how to prevent browser context menu to appear

我绘制了一些d3.js元素,例如://drawrectanglesvg.selectAll(".rect").append("rect").attr("y",10).attr("x",10).attr("height",5).attr("width",5).on("contextmenu",function(d,i){//reactonright-clicking});它工作正常,但也会打开浏览器的上下文菜单。我该如何防止这种情况发生? 最佳答案 将d3.event.preventDefault();添加到您的函数中。//drawr

javascript - 使文本适合 SVG 元素(使用 D3/JS)

我想在我创建的矩形内写入文本,如下所示:body=d3.select('body')svg=body.append('svg').attr('height',600).attr('width',200)rect=svg.append('rect').transition().duration(500).attr('width',150).attr('height',100).attr('x',40).attr('y',100).style('fill','white').attr('stroke','black')text=svg.append('text').text('Thisis

javascript - jQuery attr() 无法设置属性

我正在尝试通过svg的transform旋转图像。这是我的代码:这会在页面加载时成功地将logo.png旋转90度。此外,当我在firbug的HTML选项卡中将90更改为不同的数字时,旋转也会相应地发生变化。但是当我尝试使用jQuery更改值时,没有任何反应:$('#trns').attr('transform','rotate(60,50,50)');firebug做了哪些我的attr行没有做的事情? 最佳答案 在这里工作正常(使用jQuery1.6.2):http://jsfiddle.net/niklasvh/k3Grd/确保

javascript - $(this).attr ("id") 不工作

正如标题所说,当我尝试获取元素的id属性时,我总是得到“undefined”,基本上我想做的是在值为“other”时用输入框替换元素。代码如下:functionshowHideOther(obj){varsel=obj.options[obj.selectedIndex].value;varID=$(this).attr("id");alert(ID);if(sel=='other'){$(this).html("");}else{$(this).css({'display':'none'});}}HTML:Race:SelectoneonetwothreeOther这可能是我没有注意

javascript - 用渐变颜色绘制一个 D3 圆

如何画一个渐变色的圆?比如,从黄色到蓝色的渐变。通常,要创建一个黄色的圆圈,我们可以使用以下代码:varcdata=[50,40];varxscale=40;varxspace=50;varyscale=70;varsvg=d3.select("body").append("svg").attr("width",1600).attr("height",1600);varcircle=svg.selectAll("circle").data(cdata).enter().append("circle");varcircleattr=circle.attr("cx",function(d)