我有一個包含名稱的長度為 32 的陣列,我希望每個名稱都有唯一的顏色。
我用過colors = d3.scaleOrdinal(sorted_artists, d3.schemeTableau10),但它只給了我 10 種重復的顏色。
然后我發現這個colors = d3.scaleOrdinal().domain(sorted_artists).range(["gold", "blue", "green", "yellow", "black", "grey", "darkgreen", "pink", "brown", "slateblue", "grey1", "orange"])
我應該使用第二個并手動添加更多顏色以擁有 32 種顏色嗎?或者我們有一些預定義的東西,比如第一個?
uj5u.com熱心網友回復:
如果隨機顏色可以,這樣怎么樣?
let randomPalette = [...new Array(32)].map(() => d3.interpolateSinebow(Math.random()));
let colors = d3.scaleOrdinal().domain(['a','b','c','d','e','f','g','h','i','j']).range(randomPalette)
console.log(randomPalette)
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/535876.html
