d3 js圆形条形图,如何传递对象而不是.csv文件?

时间:2019-05-09 13:04:34

标签: javascript arrays d3.js

如何更改此代码: https://www.d3-graph-gallery.com/graph/circular_barplot_basic.html

d3.csv("https://raw.gith.....

要让它从代码内部而不是链接的csv接受我的对象: 我的对象:

{0: 3
1: 7
2: 9
3: 2
.....
}

还:我是否需要为对象添加带有列名的“标题”以使其接受(从引用的csv文件中切换国家和地区)?

我尝试根据此站点将其添加为d3.json: https://github.com/d3/d3-fetch/blob/master/README.md#csv 但是似乎所有方法都需要路径,而我的数组在当前作用域(?)中,而不是路径中的文件。 (这叫做范围,不是吗?)

1 个答案:

答案 0 :(得分:1)

您需要将其从一个对象转换为一个对象数组。

假设这是您正在使用的对象:

const obj = {
  0: 30,
  1: 200,
  2: 900,
  3: 2000,
}

这些键与示例中给出的键类似,其中Country将由X刻度表示,Value将由Y刻度表示。

const obj = {
  0: 30,
  1: 200,
  2: 900,
  3: 2000,
}
const data = Object.entries(obj).map(element => {
  return {
    Country: element[0],
    Value: element[1]
  }
});
console.log(data)

这将为您提供用于D3.js圆形区域图的正确数据格式。

我已通过here复制了该演示。点击“运行”,您可能需要向下滚动才能查看图形。