我正试图让d3 v4工作基本的简单渲染,因为v3之前工作过,我得到的是null对象。 这是代码的简单版本:
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.4.0/d3.min.js"></script>
<script>
var dataset = [23, 45, 66, 77, 88, 99];
var svg = d3.select("body").append("svg").attr({width: 500, height: 500});
console.log('svg : '+svg);
</script>
上述代码的结果是:
svg:null
用v3编写相同的代码,结果
svg:[object SVGSVGElement]'
我在这里缺少什么?我正在学习这些教程,其中大部分都在v3中。
答案 0 :(得分:4)
attr
函数可以使用两个参数 - 属性名称和属性值。试试这个:
var dataset = [23, 45, 66, 77, 88, 99];
var svg = d3.select("body").append("svg")
.attr("height", 500)
.attr("width", 500);
console.log('svg : '+svg);
答案 1 :(得分:1)
尽管所有答案(包括当前接受的答案)都没有说明,但可以将对象传递给D3版本4.x中的DBHelper
和DBHelper.save()
,只要:
首先,您引用“selection-multi”:
attr
其次,您使用style
和<script src="https://d3js.org/d3-selection-multi.v1.min.js"></script>
作为复数:
attrs
因此,在您的代码中,它应该是:
styles
这是一个演示,向您展示可行:
d3.select("body").append("div")
.attrs({
title: "A cheery, timeless greeting.",
class: "greeting"
})
.text("Hello, world!");
var svg = d3.select("body")
.append("svg")
.attrs({width: 500, height: 500});