Jason Davies 图形着色并没有避免我得到具有相同颜色的邻居多边形。
.style("fill", function(d, i) { return color(d.color = d3.max(neighbors[i], function(n) { return countries[n].color; }) + 1 | 0); });
四色定理:
我们知道 :
四色图定理指出,给定一个平面到相邻区域的任何分离,产生一个称为地图的图形,为地图的区域着色需要不超过四种颜色,因此没有两个相邻区域具有相同的颜色。(维基百科)
和:
其次,为了定理的目的,每个“国家”都必须是一个简单连接的区域,或者是连续的。[...] 因为[非毗连国家]的领土必须是同一种颜色,所以四种颜色可能不够。(维基百科)
尽管如此,#D3js 是否有任何类似四色定理的实现/功能,所以我们得到具有不同颜色的邻居多边形?(所以我们不会使用 20 种颜色,因为通常 4-6 种就足够了)
也可以看看:
注意:标签#four-color-theorem 可能会受到欢迎。