D3.js d3中的可重用图表:如何创建和更新选择?
一些示例(如)包括以下内容:D3.js d3中的可重用图表:如何创建和更新选择?,d3.js,D3.js,一些示例(如)包括以下内容: // select the svg element, if it exists var svg = d3.select(this).selectAll("svg").data([data]); // append the svg element, if it doesn't exist svg.enter().append("svg") ... …其中,此是当前DOM元素,数据是绑定到它的数据。据我所知,这个习惯用法允许在第一次调用chart函数时创建一个图表,
// select the svg element, if it exists
var svg = d3.select(this).selectAll("svg").data([data]);
// append the svg element, if it doesn't exist
svg.enter().append("svg") ...
…其中,此
是当前DOM元素,数据
是绑定到它的数据。据我所知,这个习惯用法允许在第一次调用chart函数时创建一个图表,但如果您愿意的话,在后续调用之后不能“重新创建”。但是,有人能详细解释一下这个成语吗?例如:
- 为什么使用
而不使用.selectAll(“svg”)
.select(“svg”)
- 为什么不使用
检查空选择.empty()
- 是否可以将任何单个元素数组传递到
?(我假设此数组的目的只是返回enter选择。).data()
提前感谢您的帮助。第一次调用时,没有SVG,因此
.enter()
选择将包含传递给它的数据。在后续调用中,.enter()
选择将为空,因此不会添加任何新内容
关于具体问题:
返回一个数组,然后该数组可以与传递给.selectAll()
的数组相匹配.data()
- 可以使用
,但这不是必需的——如果选择为空,则不会发生任何事情。选中.empty()
将添加一个.empty()
语句,并具有完全相同的效果if
- 对。查看示例,了解有关选择的更多详细信息