陈建华的博客
专注web开发
d3.scale.ordina创建invert方法
2014-12-16 11:30:44   阅读1945次

invert方法确实好用,给他一个值,他就能返回对应的X轴的值。但是他只在d3.date.scale里面有。在d3.scale.ordinal()里面,却不存在,再查阅了网上的英文资料后,才发现,这个可以自己来搞一个。今天就将其记录下来

var barLabels = dataset.map(function(datum) {
   return datum.image;});console.log(barLabels);var imageScale = d3.scale.ordinal()
       .domain(barLabels)
       .rangeRoundBands([0, w], 0.1);// divides bands equally among total width, with 10% spacing.console.log("imageScale....................");console.log(imageScale.domain());

.
.var xPos = d3.mouse(this)[0];xScale.invert(xPos);


解决办法

.on("click", function(d,i) {
       var xPos = d3.mouse(this)[0];
       console.log("Clicked at " + xPos);
       //console.log(imageScale.invert(xPos));
       var leftEdges = imageScale.range();
       var width = imageScale.rangeBand();
       var j;
       for(j=0; xPos > (leftEdges[j] + width); j++) {}
           //do nothing, just increment j until case fails
       console.log("Clicked on " + imageScale.domain()[j]);
   });



-----------------------------------------------------
转载请注明来源此处
原地址:#

-----网友评论----
暂无评论
-----发表评论----
微网聚博客乐园 ©2014 blog.mn886.net 鲁ICP备14012923号   网站导航