我想采用d3 配色方案之一,但要制作它的柔和版本。我不希望淺色太淺或深色太暗。
目前擁有:
intColor = d3.scaleOrdinal()
.domain(locations.map(d => d.id))
.range(d3.quantize(t => d3.interpolateSpectral(t * .8 .1), locations.length))
但是 t 函式(* .8 拉入右側, .1 拉入左側)是不可控的。想要一些我可以說使用具有一定亮度范圍的 d3.interpolateRdYlGn 的東西。
uj5u.com熱心網友回復:
最后,我將顏色分成了 LCH 分量,并為 Colorness 和 Lightness 賦予了特定值
intColor = d3.scaleOrdinal()
.domain(internalLocations.map(d => d.id))
.range(d3.quantize(t => {
const {l, c, h} = d3.lch(d3.interpolateSpectral()(t))
return d3.lch(80, 30, h) // 80 is high lightness and 30 is low colorness.
}, locations.length))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/326014.html
標籤:javascript d3.js
