3
我很確定如果我能找到一個示例顯示我正在嘗試做什麼,我可以對其進行反向工程/重新實現。有沒有人看到一個例子顯示在D3JS中線性和對數刻度之間的平滑/動畫過渡?示例顯示D3JS中線性和對數比例之間的動畫轉換?
我有兩個秤都獨立工作,但我必須重新加載頁面來更改比例。
我的Google技巧讓我失望!
非常感謝。
我很確定如果我能找到一個示例顯示我正在嘗試做什麼,我可以對其進行反向工程/重新實現。有沒有人看到一個例子顯示在D3JS中線性和對數刻度之間的平滑/動畫過渡?示例顯示D3JS中線性和對數比例之間的動畫轉換?
我有兩個秤都獨立工作,但我必須重新加載頁面來更改比例。
我的Google技巧讓我失望!
非常感謝。
這裏是概念證明jsfiddle。您只需重新選擇數據點並使用新比例重新繪製數據點即可。對於軸標籤,轉換更簡單 - 只需再次調用軸功能即可。下面的相關摘錄。
// change to log scale...
yScale = d3.scale.log().domain([1, 100]).range([dim-padding,padding]);
svg.selectAll("circle").data(data)
.transition().delay(1000).duration(1000)
.attr("cx", function(d) { return xScale(d); })
.attr("cy", function(d) { return yScale(d); });
svg.selectAll(".y")
.transition().delay(1000).duration(1000)
.call(yAxis.scale(yScale));
您可能需要仔細研究如何生成標籤以使其看起來「很好」,但原則上d3會照顧整個轉換。
非常感謝!你釘了它!我不知道爲什麼我認爲我根本不需要修改數據,但現在有意義。 – user986122
爲什麼不逐步應用到你的座標軸上,函數'f(x)= t * x ^(1/t)'對於從'0(+ epsilon)到'1'範圍內的't'......那應該在日誌和線性之間插值。一個對數函數就是上面的函數,它是在向零的極限處取得的。 – WhitAngl
我不確定如何在不刷新頁面的情況下實際更改比例。原則上,我想我可以用這個函數來定義一個比例尺,但是我怎樣才能重新生成它們之間的比例和轉換? – user986122