Javascript 将d3.js SVG移植到HTML5画布?
两天前,我打开了一个问题(),用d3快速绘制了很多元素(50k)。有了这些,我发现d3对于我的需要来说太慢了,需要一些完全不同的或者其他的方法 要绘制的数据是画布的15倍,我已经看到了。因此,似乎可以将d3移动到画布上。但是我不知道如何重写我的代码来使用CanvasJavascript 将d3.js SVG移植到HTML5画布?,javascript,html,canvas,d3.js,svg,Javascript,Html,Canvas,D3.js,Svg,两天前,我打开了一个问题(),用d3快速绘制了很多元素(50k)。有了这些,我发现d3对于我的需要来说太慢了,需要一些完全不同的或者其他的方法 要绘制的数据是画布的15倍,我已经看到了。因此,似乎可以将d3移动到画布上。但是我不知道如何重写我的代码来使用Canvas dataset = data; var stack = d3.layout.stack(); stack(dataset); var x= d3.scale.ordinal() .domain(d3.range(
dataset = data;
var stack = d3.layout.stack();
stack(dataset);
var x= d3.scale.ordinal()
.domain(d3.range(dataset[0].length))
.rangeRoundBands([0, w]);
var y= d3.scale.linear()
.domain([0, 1])
.range([0, h]);
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
var groups = svg.selectAll("g")
.data(dataset)
.enter()
.append("g");
var rects = groups.selectAll("rect")
.data(function (d) {
return d;
})
.enter()
.append("rect")
.attr("x", function (d, i) {
return x(i);
})
.attr("y", function (d) {
return y(d.y0 + d.y);
})
.attr("height", function (d) {
return h - y(d.y0);
})
.attr("width", x.rangeBand())
.attr("fill", function (d, i) {
return color(i);
});
如何将其更改为画布使用?有没有介绍如何做的教程?或者其他库更适合这种用法?这里是一个很好的示例,使用画布绘制和D3在打开的图层地图顶部显示覆盖。对于大量对象,Canvas显示出比SVG更好的性能。用500000行测试
有一些画布图表库可以基于JSON数据绘制条形图,但基本的画布条形图非常容易编码。下面是一个不到20行的函数条形图:Elijah Meeks的书D3.js in Action是这个主题的一个很好的来源。画布材料将在后面的一章中介绍。