我需要創建一個將返回有效半徑值的刻度,並且我正在嘗試處理負值。我總是希望以2px到40px的半徑繪製圓。但有兩種方法我想處理負面情況。有沒有辦法創建一個只考慮域值絕對值的規模?
有時我想要min值(即使是負值)映射到2px。想象一下表示收入的半徑,有時它是負值,有時甚至是正值。我acheiving這就像這樣:
var rScale = scale.linear.range([2, 40]).domain([minValue, maxValue]);
其他時候,我想0永遠是最小和域值始終被視爲其絕對值。想象一下里希特的景觀價值或任何可以震撼的東西。
var rScale = scale.linear.range([2, 40]).domain([0, maxAbsoluteValue]);
然而,每次我想要一個比例值,我必須把它的絕對值。
rScale(Math.abs(dataValue));
有沒有一種方法來創建,總會將域值的絕對值的規模有多大?有沒有一種方法可以擴展線性比例尺來做到這一點?
我不想只是將dataValues更改爲它們的絕對值,因爲我需要保持原始(負)值,因此我可以以不同方式設置陰性圓的樣式。