我正在嘗試創建一個等高線圖,其色標使用對數刻度。scaleLog().domain([1.8e-7, 0.017]);對于大多數域,它會生成 5 - 9 個刻度。但在上面的示例中,它返回了 70 左右。域通常是未知的,所以我不能對它們進行硬編碼。兩者.nice()似乎都.ticks()對結果沒有影響。有沒有好的方法來限制刻度數,或者直接設置數字?編輯:我最終通過編寫一個遞歸函數來解決我的問題,該函數減少了 ticks 參數,直到達到我的最大值以下的數字: const logScale = scaleFunction().domain([domainMin, domainMax]).nice();const getThreshholds = (requestedTicks: number) => { const tickscale = logScale.ticks(requestedTicks); if (tickscale.length <= maxTicks) { return tickscale; } return getThreshholds(requestedTicks - 1);};const thresholds = getThreshholds(maxTicks);
對數刻度偶爾會產生數百個刻度
慕俠2389804
2023-03-24 15:07:38
