Как читать в CSV с d3 v4?

У меня просто небольшие проблемы с пониманием документации для CSV Parse с D3. У меня сейчас есть:

d3.parse("data.csv",function(data){
    salesData = data; 
});

Но я продолжаю получать ошибку:

Uncaught TypeError: d3.parse не является функцией

Как это должно выглядеть? Я просто немного запутался, и единственные примеры, которые я мог бы найти что - то вроде этого.

Я также попробовал что-то вроде:

d3.dsv.parse("data.csv",function(data){
    salesData = data; 
});

и получил:

Uncaught TypeError: Невозможно прочитать свойство 'parse' из неопределенного

Почему это происходит? Любая помощь будет очень признательна, спасибо!

Ответ 1

Здесь есть некоторое недопонимание: вы путаете d3.csv, который является запросом, с d3.csvParse, который анализирует строку (а также смешивает синтаксис D3 v3 с синтаксисом D3 v4). В этом разница:

d3.csv(D3 v4)

Функция d3.csv, которая принимает в качестве аргументов (url[[, row], callback]):

Возвращает новый запрос для CSV файла по указанному URL-адресу с типом mime по умолчанию text/csv. (выделение мое)

Итак, как видите, вы используете d3.csv, когда хотите запросить данный CSV файл по указанному URL-адресу.

Например, приведенный ниже фрагмент получает CSV по URL между кавычками, который выглядит следующим образом...

name, parent
Level 2: A, Top Level
Top Level, null
Son of A, Level 2: A
Daughter of A, Level 2: A
Level 2: B, Top Level

... и регистрирует проанализированный CSV файл, проверьте его:

d3.csv("https://gist.githubusercontent.com/d3noob/fa0f16e271cb191ae85f/raw/bf896176236341f56a55b36c8fc40e32c73051ad/treedata.csv", function(data){
    console.log(data);
});
<script src="https://d3js.org/d3.v4.min.js"></script>

Ответ 2

Вы можете получить данные csv в d3, как показано ниже:

// get the data
d3.csv("data.csv", function(error, data) {
  if (error) throw error;
      console.log(data);
      //format data if required...
      //draw chart
}

Ответ 3

Используйте d3.csv("data.csv", function(data){...}), чтобы получить CSV из url и parse, или используйте d3.csv.parse() для разбора строки в формате CSV.

Ответ 4

Вот код, который вы можете использовать для чтения csv файла с помощью d3.js

<script src="https://d3js.org/d3.v4.min.js"></script>
<script>
 d3.csv("csv/cars.csv", function(data) {
 console.log(data[0]);
});
</script>

Обратите внимание, что имя файла csv - "cars.csv", и файл сохраняется в папке csv.

console.log(data[0])

поможет вам увидеть вывод данных в окне отладки браузера. Где вы также можете найти, есть ли какая-либо ошибка.

Ответ 5

Я также не смог заставить работать d3.csv("csv_file.csv", функция (data) {//изменение кода}).

Одноклассник рекомендовал использовать следующее, которое до сих пор работало:

d3.csv("data.csv").then(function(data){
//modifying code
}

Как отмечено в комментариях ниже, это исправление, если вы используете v5 вместо v4.