2016-03-01 63 views
1

我的代码:如何确定一个类型的动态缩放功能的?

let scale = d3.scale.log(); 
//How to determine that 'scale' variable is a logarithmic scaling function? 

scale = d3.scale.ordinal(); 
//In this case how to determine that 'scale' variable is an ordinal scaling function? 

是否有一个尺度函数的一些属性或一些方法,可以帮助我吗? 我需要为了绘制HTML画布API秤特定的轴系此信息。

+0

量均衡器只是功能并没有与规模的功能相关的属性,以确定它是什么样的。也就是说,即使有找到规模类型的方法,您也应该考虑替代方案。你的用例是什么? – Ankit

+0

@Ankit http://stackoverflow.com/questions/35726692/how-to-determine-a-type-of-a-scaling-function-dynamically/35727330?noredirect=1#comment59134027_35727330 –

回答

1

如果你只需要确定它是否是一个顺序量表或没有,你可以使用:

scale.hasOwnProperty("rangePoints") 

只有顺序量表有方法。


替代的想法,如果你正在创建规模,只跟踪它自己:

scale = d3.scale.log(); 
scale.type = "log"; 
scale = d3.scale.linear(); 
scale.type = "linear"; 
+0

我需要确定另一个函数如线性,等 –

+0

@ KirillA.Khalitov,更直接的方法是只跟踪它自己。 – Mark

+0

我需要更优雅的代码,比如'd3.axis'方法: '变种x轴= d3.svg.axis()规模(X)' 在这段代码中我没有指定一个规模型我只是通过“X”缩放功能。它如何在'd3'中工作? 我学习'd3'源代码。 –