本文参考博客:http://blog.csdn.net/heyzol/article/details/22912389

由于我是固定了刻度数,美观的呈现图表,所以在原博主算法上进行了修改

var calculateRulerMark = function(arrMark, numMin, numMax, iHeight, iActualMarkNum)
{if(numMax <= numMin){return; }var iMinMark = numMin;var iMaxMark = numMax;var iSuggestMarkNum = parseInt(iHeight / 20) + 1;//传了实际的进来说明,实际的比建议的大iActualMarkNum = iActualMarkNum ? iActualMarkNum - 1 : iSuggestMarkNum;var iSuggestStep = (numMax - numMin) / iActualMarkNum;var iBase = Math.pow(10, parseInt(Math.log(iSuggestStep)/Math.log(10)));if(iBase != iSuggestStep){iBase = 10 * iBase;}var iTempStep = (iSuggestStep / iBase).toFixed(6);// 常规步长 0.1, 0.2, 0.25, 0.5 , 1 if(iTempStep >= 0 && iTempStep <= 0.1){iTempStep = 0.1;}else if(iTempStep >=0.100001 && iTempStep <= 0.2){iTempStep = 0.2;}else if(iTempStep >= 0.200001 && iTempStep <= 0.25){iTempStep = 0.25;}else if(iTempStep >= 0.250001 && iTempStep <= 0.5){iTempStep = 0.5}else{iTempStep = 1;}iTempStep = iTempStep * iBase;//判断最小刻度是否需要+1if(parseInt(numMin / iTempStep) != numMin / iTempStep){if(numMin < 0){iMinMark = (-1) * Math.ceil(Math.abs(numMin/iTempStep))*iTempStep;}else{iMinMark = parseInt(Math.abs(numMin/iTempStep))*iTempStep;}}//判断最大刻度是否需要+1if(parseInt(numMax / iTempStep) != numMax / iTempStep){if(numMax < 0){iMaxMark = (-1) * Math.floor(Math.abs(numMax/iTempStep))*iTempStep;}else{iMaxMark = parseInt(numMax/iTempStep + 1)*iTempStep;}}var iTempMarkNum = (iMaxMark - iMinMark) / iTempStep + 1;if(iTempMarkNum > iSuggestMarkNum){calculateRulerMark(arrMark, numMin, numMax, iHeight, iActualMarkNum)}else{iSuggestMarkNum = iTempMarkNum;for(var i = 0; i < iSuggestMarkNum; i++){arrMark.push(iMinMark+ iTempStep * i);}}
}

坐标轴范围及刻度的自适应算法相关推荐

  1. 曲线坐标轴范围及刻度的自适应算法综述

    摘自:http://www.cnblogs.com/pengcl/p/3278388.html 由于工作原因,需要画图表,但在图表的该度的取值上就出现了问题,但现在关于图表的控件已经很多了,那应该也有 ...

  2. 坐标轴刻度取值算法-基于魔数数组-源于echarts的y轴刻度计算需求

    数值型坐标轴刻度计算算法 前言 算法描述 上代码 代码运行效果 ts版本(2021/3/10补充) 结语 前言 因实习的公司是做大数据的,而我的工作刚好又是需要绘制一些数据图表的.绘制图表有许多现成的 ...

  3. 小瓜讲matplotlib高级篇——坐标轴设置(坐标轴居中、坐标轴箭头、刻度设置、标识设置)

    文章目录 问题 解决方案 代码附录 文章导引列表: 机器学习 数据分析 数据可视化 问题 我们在用matplotlib绘制图的时候总是有各种需求,比如下图为matplotlib默认设置画的正弦图 但是 ...

  4. python 坐标轴刻度_给妹子讲python-S02E08坐标轴与主次刻度

    微信公众号: python数据科学家 [要点抢先看] 1.剖析plt和坐标轴对象ax的关系 2.主刻度与次刻度的概念 3.格式生成器与定位器的概念 4.数值型主次刻度与自定义格式生成器函数举例 5.日 ...

  5. 域对抗自适应算法的设计、不足与改进(Domain Adversarial Learning)

    ©作者 | 江俊广 单位 | 清华大学 研究方向 | 迁移学习 本文主要介绍域自适应(Domain Adaptation)中的对抗域自适应方法(Domain Adversarial Learning) ...

  6. 陕西中际现代:基于自适应算法的PLC滴灌控制系统

    基于自适应算法的PLC滴灌控制系统 陕西中际现代包装科技有限公司滴灌部 1.介绍 水资源正在成为一种珍贵的资源.城镇的市民使用成千上万立方的水来浇灌花园和绿地.他们依赖于使用固定灌溉计划的控制器.而这 ...

  7. 基于自适应算法和增量式PID算法的模拟直升飞机控制系统

    基于自适应算法和增量式PID算法的模拟直升飞机控制系统 文章目录 基于自适应算法和增量式PID算法的模拟直升飞机控制系统 控制系统硬件 单片机系统 传感器系统介绍 直升机模拟系统介绍 系统模块介绍 A ...

  8. webrtc中的带宽自适应算法

    webrtc中的带宽自适应算法分为两种: 1, 发端带宽控制, 原理是由rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度. 2, 收端带宽估算, 原理是并由收到rt ...

  9. CVF2020邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic SegmentationFDA:用于语义分割的傅立叶域自适应算法

    邻域自适应/语义分割:FDA: Fourier Domain Adaptation for Semantic Segmentation FDA:用于语义分割的傅立叶域自适应算法 0.摘要 1.概述 1 ...

  10. C#,图像二值化(05)——全局阈值的联高自适应算法(Legal Self-Adaptive Thresholding)及其源代码

    阈值的选择当然希望智能.简单一些.应该能应付一般的图片. What is Binarization? Binarization is the process of transforming data ...

最新文章

  1. debian 安装_如何在 Debian/Ubuntu 上手动安装安全更新? | Linux 中国
  2. 英雄联盟更新服务器维护,lol更新维护
  3. P2575 高手过招
  4. 线性代数、概率 入门书籍推荐
  5. zabbix 自定义监控项 获取nginx监控状态
  6. OpenCV4每日一练day14:光流法跟踪移动物体
  7. Entity Framework Core 实现全局查询过滤
  8. Snagit 12 – 功能强的老牌截图软件
  9. 架构师重构代码的12条军规
  10. MATLAB调用cpp文件
  11. 武汉大学.计算机学院.密码学,密码学教学课件-武汉大学计算机学院.ppt
  12. QEMU新的-nic选项
  13. PS 剪切图片到指定大小
  14. 求web嘎嘎厉害的朋友
  15. Outlook中Skype会议按钮丢失
  16. 基于ABP实现DDD
  17. java里面逗号分隔的字符串转list
  18. python椭圆特征识别_opencv python中的椭圆检测
  19. linux git 撤销删除文件,删除文件以后,如何通过git撤销删除的文件,不提交到远端代码库...
  20. 每个python初学者都会犯的变量命名错误

热门文章

  1. 项目管理ITTO(一张图梳理49个过程)
  2. Python 时间序列数据平滑去噪 Savitzky-Golay滤波器
  3. 微商深度揭秘——减肥产品、推广方法
  4. RC电路 微分器 积分器 滤波器
  5. Xcode打包ipa基本步骤
  6. 【自然语言处理工具箱 LTP 】pyltp 使用教程
  7. IO、NIO和Netty
  8. ERP原理与应用教程-第一章
  9. NXP恩智浦单片机Keil5环境下编程
  10. DRP(javaweb)系统