d3で複数のデータファイル(jsonやcsv)を読み込む場合、以下のようにコールバック地獄に陥りやすいです。 d3.json('test.json', function(json){ d3.csv('test1.csv', function(csv1){ d3.csv('test2.csv', function(csv2){ d3.csv('test3.csv', function(csv3){ d3main(json, csv1, csv2, csv3); }); }); }); }); function d3main(){ var data = Array.prototype.slice.call(arguments); }