【发布时间】:2013-12-12 00:58:44
【问题描述】:
我被困在 d3(或一般的 JavaScript)中。
我想用 d3 创造一个传奇。这9个项目的位置应该相互依赖。更具体地说:
这是我的简化数组: var dataset = ["Africa","Asia", "Caribbean", "Central America", "Europe", "Middle East", "North America", "Oceania", "South America"];
在 x 轴上,我想将下一个文本进一步(向右)绘制 40 像素,然后最后一个文本标签结束。我的意图是每次在圆圈之间都有相同的空间。所以下一个文本总是取决于最后一个国家名称的长度。
我试过这个:
.attr("x", function(d, i) {return i * 40 + d[i-1].length + 7;})
但控制台显示 d[i-1] 未定义。
我错过了什么?你会如何解决这个问题?
提前非常感谢!非常感激你的帮助!
伊娃
更新: 实际上,我要绘制的图例不仅包括文字,还包括小圆圈。
这是数组(将 x_pos 硬编码为 d[2]:var dataset = [ ["非洲", "#4B7985", 5], ["亚洲", "#58AB86", 55], ["加勒比", "#63A4B5", 100], ["中美洲", "#818181", 165]、[“欧洲”、“#E9726C”、255]、[“中东”、“#E3AC73”、310]、[“北美”、“#B65856”、383]、[“大洋洲”、“ #287E5C", 470], ["南美洲", "#AC8358", 530] ];
如何根据国家名称的长度绘制圆圈并获得相同的圆圈间距?
【问题讨论】:
标签: javascript d3.js