C#里计算坐标轴的刻度步长的方法

数据范围与步长

ZedGraph 可以根据曲线中数据值的范围自动选择合适的坐标轴刻度最小值、最大值和步长值。或者,你也可以手动设置其中任意一个或所有这些值,之后刻度选择逻辑会尝试为那些仍处于自动模式的剩余参数选取合适的值。

刻度选择逻辑基于这样一个假设:最符合人类认知习惯的步长应该是 10 的整数约数。也就是说,步长应该是 1、2 或 5 乘以 10 的某个幂次方。刻度选择逻辑的核心体现在 CalcStepSize() 方法中:

		protected static double CalcStepSize( double range, double targetSteps )
		{
			// 根据数据范围计算出临时步长
			double tempStep = range / targetSteps;

			// 获取步长的大小(数量级)
			double mag = Math.Floor( Math.Log10( tempStep ) );
			double magPow = Math.Pow( (double) 10.0, mag );

			// 计算新步长的最高有效数字。
			double magMsd = ( (int) ( tempStep / magPow + .5 ) );

			// 将最高有效数字调整为 1、2 或 5
			if ( magMsd > 5.0 )
				magMsd = 10.0;
			else
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值