angular-nvd3指令对nvd3的封装导致的xAxis坐标对应Dots不整齐的自定义修复
来源:互联网 发布:c语言两竖怎么打 编辑:程序博客网 时间:2024/05/22 02:21
修复点在xAxis property的tickValues函数上面:
tickValues:function(data, p){ var MAX_LIMIT = 5; if(data && data[0] && data[0].values && data[0].values.length > 0){ var values = data[0].values; var lastIndex = values.length - 1; var ticks = []; if( lastIndex <= MAX_LIMIT ){ angular.forEach(values,function(o){ ticks.push(o.x) }); } else { var dataPointDistance = values[1].x - values[0].x; var pointsStep = ( values[lastIndex].x - values[0].x ) ; var step = pointsStep / dataPointDistance step = ( step + 1 ) / MAX_LIMIT; var index = 0; for(var mark = 0; mark < MAX_LIMIT - 1; mark++ ) { index = index + step; ticks.push(values[index].x); } ticks.push(values[lastIndex].x); } console.info(ticks) return ticks; } }
improvement:
tickValues:function(data, p){ var MAX_LIMIT = 10; if(data && data[0] && data[0].values && data[0].values.length > 0){ var values = data[0].values; var lastIndex = values.length - 1; var ticks = []; if( lastIndex <= MAX_LIMIT ){ angular.forEach(values,function(o){ ticks.push(o.x) }); } else { var xStep = values[1].x - values[0].x; var xSpanNeeded = Math.floor(( values[lastIndex].x - values[0].x ) / ( MAX_LIMIT - 1)); var stepForLoop = Math.floor(xSpanNeeded / xStep); var indexCount = 0; var test = []; for(var count = 0; count < MAX_LIMIT-1; count++) { indexCount = indexCount + stepForLoop; ticks.push( values[indexCount].x); test.push(new Date(values[indexCount].x)); } //ticks.push(values[lastIndex].x); } console.info(ticks,test) return ticks; }Better Solution :
xScale: d3.time.scale().nice(d3.time.hour)above property is paralleled with xAxis property.
0 0
- angular-nvd3指令对nvd3的封装导致的xAxis坐标对应Dots不整齐的自定义修复
- 分享一个基于D3.js的互动可重用图表javascript类库 - NVD3.js
- nvd3使用(1)——多线图中的一个很隐蔽的bug
- angular创建自定义的指令
- Angular的自定义指令以及实例
- Angular的自定义指令及其实例
- 实现对angular中过滤器的封装
- 拖拽(可以封装成指令的形式 angular )
- 编辑TIN时设置参数为esriTinSurfaceType.esriTinHardReplace导致边缘不整齐的问题
- angular的基本指令
- angular的指令
- Angular强大的指令
- Angular的内置指令
- angular 指令的问题
- angular的指令
- Angular自定义指令实现一般性的表单验证
- 使用指令创建自定义属性的Angular JS
- 自定义title 后导致的坐标无法居中 问题解决方案
- 微次元学习笔记-Build篇
- 利用 C++ 11 特性实现多线程计数器
- 启程互联网架构梦
- stack vs heap
- Android 之 startActivityForResult
- angular-nvd3指令对nvd3的封装导致的xAxis坐标对应Dots不整齐的自定义修复
- 守护进程例子《四》
- 2015年04月24日学习情况
- vs2010 使用sqllite来取代Mysql
- 链表之字符(一)
- JavaScript:Scope &Closure 变量作用域和闭包
- Eclipse/MyEclipse下使用SVN的用户名和密码删除
- centos 6.4 lamp 环境搭建 php 5.4
- ddpush 学习之路 15 关于DDPUSH 的一些很多人会问到的问题和解答