D3.JS,如何在同一数据绑定中呈现多个对象
D3.JS, How can I render multiple objects in the same data binding?
我有一个数据模型,它是一个包含开始时间和结束时间的对象数组。现在我想用它来渲染甘特图类型的购物车。
很容易绑定数据并用它呈现一行:
chart.data(myDataList).enter().append("line")
.attr("x1", function(d){return d.x})
.attr("y1", lineHeight)
.attr("x2", function(d){return d.y})
.attr("y2", lineHeight)
数据可能类似
myDataList = [ [start time, end time],
[start time 2, end time 2],
[start time 3, end time 3]]
现在,我需要用每个数据项呈现这样的东西:
O--------------------O
这是除了这条线之外,这条线的两端都会有一个圆圈。圆cx数据将来自d.x和d.y。但是,我不太确定如何将同一个数据元素绑定到三个元素中。
有什么帮助吗?
首先制作行:
chart.data(myDataList).enter().append("line")
.attr("x1", function(d){return d.x})
.attr("y1", lineHeight)
.attr("x2", function(d){return d.y})
.attr("y2", lineHeight)
现在做圆圈
//make inner circle
chart.selectAll(".in").data(dataset).enter()
.append("circle")
.attr("class", "in")
.attr("cx", function(d) {
return xScale(d[0])
})
.attr("cy", function(d) {
return xScale(d[0])
})
.attr("r", 2);
//make outer circle
chart.selectAll(".out").data(dataset).enter()
.append("circle")
.attr("class", "out")
.attr("cx", function(d) {
return xScale(d[1])
})
.attr("cy", function(d) {
return xScale(d[0])
})
.attr("r", 2);
此处的工作代码
首先,将行代码缓存在一个变量中。
var line=chart.data(myDataList).enter().append("line")
.attr("x1", function(d){return d.x})
.attr("y1", lineHeight)
.attr("x2", function(d){return d.y})
.attr("y2", lineHeight)
然后,现在使用变量,我们可以使用与相同的数据元素添加圆圈
line.append("circle")
.attr("cx", function(d){return d.x})
.attr("cy", lineHeight)
.attr("r", 4);//First circle
现在,第二圈。。。
line.append("circle")
.attr("cx", function(d){return d.y})
.attr("cy", lineHeight)
.attr("r", 4);//Second circle
相关文章:
- 在数据绑定中使用对象敲除绑定
- 挖空、视图模型位于其他对象和数据绑定中
- 如何使用Plates模板引擎将数据绑定到对象数组内的属性
- 有棱角的将数据字典中的数据绑定到对象
- 如果数据绑定对象只有它的名称,那么敲除如何知道它
- jQuery将数据绑定到动态创建的对象的单击事件
- 将数据绑定到基于对象属性的现有元素数
- 为什么对象上的“.show”属性会搞砸基于该对象的数据绑定
- 如何在数据绑定后在 KNOCKOUT js 中使用“with”访问另一个原型对象
- Javascript 对象数据绑定与 Vue
- D3.JS,如何在同一数据绑定中呈现多个对象
- d3通过id值将对象的数组数据绑定到加载的svg
- 我得到了一个JSON/Javascript对象,因为我可以在控制台中看到它,但我如何让它序列化并使我的数据绑定到我的Ui
- 聚合物网络组件数据绑定一个js对象/数组
- Grails控制器中的子对象数据绑定
- Angularjs指令隔离了对象不起作用的范围+单向数据绑定
- 了解如何使用element获取数据绑定键和值可观察对象
- Angularjs的数据绑定与数据属性对象
- 在动作方法中,如何将post数据绑定到动态对象
- 不能将Json数据绑定到d3.js对象