d3.js 如何在JavaScript中为数组中的10个以上对象分配颜色?

ibrsph3r  于 2023-05-07  发布在  Java
关注(0)|答案(1)|浏览(129)

我有一个长度为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"])
我应该使用secound一个和添加更多的颜色有32种颜色手动?还是像第一个一样预先定义了一些东西

z0qdvdin

z0qdvdin1#

如果随便涂点颜色就可以了,这样怎么样?

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>

相关问题