D3&amp;period;js 3D matrix interpolation

| |
[ 所属分类 前端（javascript） | 发布者 店小二05 | 时间 2019 | 作者 红领巾 ] 0人收藏点击收藏

Code is here: http://jsfiddle.net/S48QX/ .

I want to draw a image based on a 3D data set, for example:

var data = [ {x:1.428, y:0.500, energy:0.458}, {x:1.428, y:1.191, energy:0.616}, {x:1.428, y:1.882, energy:0.795}, {x:1.428, y:2.573, energy:0.642}, {x:1.428, y:3.264, energy:0.536}, {x:1.428, y:3.955, energy:0.498}, {x:1.428, y:4.646, energy:0.494}, {x:1.428, y:5.337, energy:0.517}, ...

}

It's like scattered plot, but I need every pixel to be set, not just a bunch of color dots on the image. So, my question is how can I interpolate scattered dots with d3.js.

The generated image here is the best I can do so far, but is it possible to make it more smooth and beautiful?

I am seeking a way to generate a HEATMAP only based on partial/scattered data. I hope there is a way in d3.js that can interpolate the missing part.

(1,5) ? ? ? (5,5) ? ? ? ? ? ? ? ? ? ? (1,2) ? ? ? (5,2)

I have one solution using svg filters. Be careful as this may not be what you want since the mathematical interpretation of this interpolation would be more 'blur'. I mostly did it as an exercise on svg filters. However 2d interpolation end up with similar results: see cubic interpolation for example ( http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.interpolate.interp2d.html in python)

I used circles (you could try with rectangles) slightly overlapping and semi transparent and applied to gaussian blur on them, resulting in a 'heatmap' looking thing.

var filter = svg.append("defs").append('filter') .attr('id', 'blur') .append("feGaussianBlur") .attr("stdDeviation", 8);

then using .style('fill-opacity', 0.5).attr("filter", "url(#blur)") on the circles

See the fork http://jsfiddle.net/eqt1mkov/

• 创业公司的动态股权分配机制：里程碑、贡献点、贡献值

1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责；
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性，不作出任何保证或承若；
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。