2016-03-01 40 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'源代碼。 –