坐标轴范围及刻度的自适应算法

本文参考博客: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.1000
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab中,可以使用`xlim`和`ylim`函数来修改坐标轴范围,同时可以使用`xticks`和`yticks`函数来修改坐标轴刻度。例如,如果要将x轴的范围设置为0到10,y轴的范围设置为-5到5,并将x轴的刻度设置为0到2之间的整数,y轴的刻度设置为-5到5之间的整数,可以使用以下代码: ```matlab xlim([0, 10]); ylim([-5, 5]); xticks(0:2:10); yticks(-5:5); ``` 其中,`xticks`和`yticks`函数的参数是一个向量,表示要在坐标轴上显示的刻度值。在上面的例子中,`xticks(0:2:10)`表示将x轴上的刻度设置为0、2、4、6、8和10。`yticks(-5:5)`表示将y轴上的刻度设置为-5、-4、-3、-2、-1、0、1、2、3、4和5。这些函数也可以在绘制图形之前或之后调用。 如果要修改坐标轴范围刻度,并同时设置刻度标签的格式,可以使用`xtickformat`和`ytickformat`函数。例如,如果要将x轴的范围设置为0到10,y轴的范围设置为-5到5,并将x轴的刻度设置为0到2之间的整数,y轴的刻度设置为-5到5之间的整数,并将刻度标签设置为两位小数,可以使用以下代码: ```matlab xlim([0, 10]); ylim([-5, 5]); xticks(0:2:10); yticks(-5:5); xtickformat('%.2f'); ytickformat('%.2f'); ``` 其中,`xtickformat`和`ytickformat`函数的参数是一个格式化字符串,表示要在刻度标签中显示的格式。在上面的例子中,`'%.2f'`表示使用两位小数来显示刻度标签。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值