对D3来说很新,所以感谢您的耐心等待!我正在构建一张地图,我想在美国地图上的某些城市添加圆圈。 lat和lon坐标位于.csv我在GitHub上托管。
现在,我试图追加的两个圈子只出现在地图的最左侧:
这些是我得到的错误:
以下是代码:
import numpy as np
np.random.seed(123)
a = np.random.uniform(size=(8,3)) # or (512,3)
b = np.random.uniform(size=(16,3)) # or (1024,3)
diff = a[np.newaxis,:,:]-b[:,np.newaxis,:]
dist = np.sqrt(np.sum(diff**2,axis=-1))
答案 0 :(得分:1)
您为cx和cy设置了相同的值:
.attr('cx', function(d) {
return projection([d.lon, d.lat]);
})
.attr('cy', function(d) {
return projection([d.lon, d.lat]);
})
该值不是cx或cy,它们都是:projection([d.lon,d.lat])
将返回包含x和y的两个元素数组,因此您应该使用:
.attr('cx', function(d) {
return projection([d.lon, d.lat])[0]; // x coordinate
})
.attr('cy', function(d) {
return projection([d.lon, d.lat])[1]; // y coordinate
})
传递数组而不是数字时会发生错误。