我有一张中国的彩色编码地图,直到我在地图右边添加了一个色标和一个轴,它才能正常工作。你可以在这里查看:
https://bl.ocks.org/diggetybo/4c42aafc20c21e416585c9e37079eda2
问题是,在添加轴后,一个省失踪了。缺少,我的意思是它不再可见。我不确定它是否确实存在,但是没有填充,或者由于某种原因,路径没有被完全绘制出来。它在中国西北部也是一个非常大的省份。对于地理上的核心,该省的名称是新疆。
起初我确信这是我的用户错误,但经过很多工作后我慢慢开始怀疑它可能是某种类型的错误。我确实设法将其缩小到哪一行:第69行,或下面代码段中的.call(axis);
行:
var axisNodes = svg.append('g')
.attr('transform', 'translate(' + (margins.left+865) + ',' + (margins.top) + ')')
.call(axis);
styleAxisNodes(axisNodes);
我确实注释掉了所有其他行,只有.call(axis);
行使该省消失。你可以尝试自己,只需注释第69行,该省将重新出现。
我的问题:轴与我的代码的完全不同的部分有什么关系,json解析的地图路径的填充?为什么仅影响该省?我该怎么做才能避免这种情况?
谢谢
答案 0 :(得分:3)
在d3.json
功能中执行此操作时:
svg.selectAll("path")
实际上,您正在选择一条已存在的路径,即路径的路径,并将数据绑定到该路径。
因此,您的“输入”选择将减少一个元素。
解决方案:选择不存在的内容:
svg.selectAll("foo")
以下是您更新的bl.ocks:@Yoshi
PS:另一个解决方案是在绘制地图后调用轴。
PPS:“为什么它只影响该省?”该省是数据中的第一个。