设计指数仪表
对于下面这个仪表,相邻标签(刻度)之间不是等差的,但如果从指数角度看,则是等差的。
因为1、8、64、512、4096分别是2的0、3、6、9、12次方,指数之间的间隔都是3,所以是指数等差。
以上面的仪表为例,设计这样的指数仪表的要点为:
1、先将Gauge的Minimum和Maximum分别设置为1和4096。
2、isLogarithmic属性设置为True,logarithmicBase设置为2,需要注意的是,Minimum必须大于0,否则无法将isLogarithmic设置为True。
3、增加一个Labels,Interval设置为3。
4、增加一个Marks,填充颜色设置为红色,Interval属性设为3,现在仪表的看起来像:
5、再增加一个Marks,填充颜色设置为灰色,Interval属性设为3,并将intervalCoeff属性设置为10,现在仪表就成了:
关于intervalCoeff属性
在默认情况下,系统每隔一个Interval绘制一个刻度(或标签)。
如果设置了intervalCoeff,则每个刻度(标签)之间 会再分成intervalCoeff份,也就是会增加intervalCoeff-1个标签(刻度),新增刻度(标签)之间的间隔值是相等的(注意不是指数间隔相等)。
为方便理解,将上述仪表的的Maximum改为48,现在仪表看起来如下:
第一个常规标签是1,第二个常规标签是8,1和8之间间隔7,如果将intervalCoeff设置为7,结果会怎样呢?
试一下就知道了,将Labels和第二个Marks的intervalCoeff都设置为7,结果如下:
显然,第一个常规标签值为1,第二个常规标签值是8,将间隔分成7等份,所以每份间隔是1.
为什么从8(第二个常规标签)开始,间隔成了8呢,因为第三个常规标签值是64,所以:(64 - 8) / 7 = 8。
一个小技巧
如果你足够细心,你会觉得奇怪,为什么在48的位置显示了一个红色刻度,按道理第三个红色刻度位置应该是64啊,你说得没错,之所以在48的位置出现了红色刻度,是因为我将此刻度的ShowIrregularTo属性设置为True了,这样系统会强行在结束值位置绘制一个刻度(或标签),对应也有一个ShowIrregularFrom属性,如果将其设置为True,会强行在起始值位置绘制一个刻度(或标签)