首页 > 解决方案 > 如何根据d3中的第三列给出颜色?

问题描述

我是 D3 的新手,并且遵循了一些教程,并在下面看到了分组散点图。 https://www.d3-graph-gallery.com/graph/scatter_grouped.html

在这一点上,我看到他们给予

// Color scale: give me a specie name, I return a color
  var color = d3.scaleOrdinal()
    .domain(["setosa", "versicolor", "virginica" ])
    .range([ "#440154ff", "#21908dff", "#fde725ff"])

他们根据物种分配颜色。而不是这个,我将年份作为一个从 1982 年到 2019 年的类别。

一种方法是给出从 1982 年到 2019 年的整个域和范围作为每种颜色。但我不认为这是一个好方法。有没有什么方法可以为每年分配一种独特的颜色,而无需域中的整个范围。感谢任何帮助。

标签: javascriptd3.js

解决方案


var color = function(d) { return d.year;},
    color =d3.scaleOrdinal(d3.schemeCategory10);

对于 d3 v4,这可以解决问题。


推荐阅读