使用d3.js在绑定数据内数组(以恒定性动态生成d3.svg.line)
Array within bound data (dynamically generating d3.svg.line with constancy) with d3.js
我试图(动态)生成一组div
s,绑定到一些数据,每个div包含一些文本和一个带行的SVG。
如果我想一次做一个,这个代码有效:
var ccg = [40, 100, 1, 5, 25, 10];
var lineFunction = d3.svg.line()
.x(function(d, i) { return width-(i*10); })
.y(function(d, i) { return height-d; })
var myContainer = d3.select("body").append("div")
var svgContainer = myContainer.append("svg")
.attr("width", "10px")
.attr("height", "10px");
var correlogram = svgContainer.append("path")
.attr("d", lineFunction(ccg))
到目前为止还不错。现在我想更新一个数据数组,并让它动态地更新DOM:
var width=100,
height=100;
var clusters = [
{id: "1",
ccg: [40, 100, 1, 5, 25, 10] },
{id: "2",
ccg: [41, 101, 11, 51, 21, 11] },
{id: "3",
ccg: [42, 130, 13, 53, 21, 101] },
]
var lineFunction = d3.svg.line()
.x(function(d, i) { return width-(i*10); })
.y(function(d, i) { return height-d; })
.interpolate("step-after");
var clusterView = d3.select("body").append("div")
var clusterDivs = clusterView.selectAll(".cluster")
.data(clusters, function(d) {return d.id});
var cluster = clusterDivs.enter()
.insert("div", ".cluster")
var lineFunction = d3.svg.line()
.x(function(d, i) { return width-(i*10); })
.y(function(d, i) { return height-d; })
.interpolate("step-after");
var svgContainer = cluster.append("svg")
.attr("width", width)
.attr("height", height);
svgContainer.append("path")
.data(function (d) {return d.ccg;})
.enter()
.attr("d", function(d) {return lineFunction(d)})
cluster.append("div")
.text(function(d) { return d.id; });
我犯了一个错误。CCD_ 2。
我尝试过各种方法:将函数直接放入.attr
中似乎"有效",只是它不返回该属性的任何输出。
基本上,给定输入数组clusters
:如何从每个子数组ccg
生成不同的行?我读过关于嵌套选择的教程,但不确定它是否真的能回答我的问题,因为你不能将每个线顶点绑定到一个数据点。。。
请参阅http://jsfiddle.net/henbox/9my6Lznc/
替换:
svgContainer.append("path")
.data(function (d) {return d.ccg;})
.enter()
.attr("d", function(d) {return lineFunction(d)})
带有:
svgContainer.append("path")
.datum(function (d) {return d.ccg;})
.attr("d", function(d) {return lineFunction(d)})
把data
换成datum
,去掉enter()
。有关data
和datum
之间差异的更多讨论,请参阅:https://stackoverflow.com/a/13728584/3442309.
data
加入一个数组,而您有对象(例如{id: "2", ccg: Array[6]}
)
相关文章:
- d3基于用户选择动态更新节点
- d3.js Chord图的动态工具提示
- d3.hexbin插件-动态定义颜色域以适应数据
- D3动态json密钥名称
- D3.js强制布局:动态添加节点;t随图的其余部分移动
- D3.js-动态更改序数刻度
- 如何动态地决定并告诉d3.json()函数何时使用哪个json
- 如何在D3.js中将点击按钮动态添加到html表中
- d3.js带有标签的动态数据
- 将json数据动态加载到D3节点中
- D3动态垂直对齐文本
- 使用d3.js在绑定数据内数组(以恒定性动态生成d3.svg.line)
- d3 动态更新树状图
- 在散点图 D3.js 中动态命名轴
- D3 动态 JSON 标记
- 将引导工具提示绑定到 d3 动态创建的 SVG 元素
- 条形图中的 D3 动态数据
- 使用 jquery/d3 动态重用模板
- 使用d3动态地更新线使得线来回移动
- 力布局中的d3动态曲线