一尘不染

如何在D3 v5中从CSV文件加载数据

javascript

我正在尝试从D3中的CSV文件加载数据;我有以下代码:

function update (error, data) {
    if (error !== null) {
        alert ("Couldn't load the dataset!");
    } else {
        //do something
    };

function changeData () {
    d3.csv ("data/dataset.csv", update);
}

如果我使用D3 v4,它可以正常工作,但是如果我切换到v5,它将不再起作用。有人可以向我解释如何修改代码以使其与D3 v5兼容吗?


阅读 425

收藏
2020-05-01

共1个答案

一尘不染

d3 v5使用访存API并返回要求以下代码的Promise。

d3.csv('yourcsv.csv')
  .then(function(data) {
      // data is now whole data set
      // draw chart in here!
  })
  .catch(function(error){
     // handle error   
  })

万一将来人们想要v4。另一方面,d3v4使用XMLHttpRequest方法,并且不返回要求此代码的Promise

d3.csv('yourcsv.csv', function(data) {
    //whole data set
    // draw chart here
})

csv加载是异步的,因此请确保在csv函数中运行图表代码。

2020-05-01