未捕获的TypeError:h.forEach不是函数D3

时间:2016-11-09 14:19:09

标签: javascript arrays d3.js svg

我正在尝试在viz.js / d3.js中创建一个Chord图表,我从我的webservice中获取日期(数组数组)和ajax功能:

$.ajax({
  "async": true,
  "crossDomain": true,
  "url": "http://localhost:9000/D_tre",
  "method": "GET",
  "Content-Type": "text/plain; charset=utf-8",
  "success": function(data) {
    //grafico_d_tre(pos_data); 
    pos_data = data;
    grafico(pos_data);
  },
  error: function (result) {
  }
});

我在我的ajax中调用函数grafico()来获取数据并创建图表:

function grafico(pos_data) {

  console.log(pos_data);
  var colors = {
    "BA": "#da4480",
    "Avventura": "#5ab449",
    "Fantasy e per bambini": "#7f5acd",
    "Giallo": "#aab740",
    "Romanzo": "#ce58c0",
    "Sport": "#50a26e",
    "Storia e Letteratura": "#45c0bc",
    "BT": "#ce5929", "FG": "#4e7bda",
    "LE": "#d49d3c",
    "TA": "#6660a3"
  };

  var sortOrder = [
    "BA",
    "Avventura",
    "Fantasy e per bambini",
    "Giallo",
    "Romanzo",
    "Sport",
    "Storia e Letteratura",
    "BT",
    "FG",
    "LE",
    "TA"
  ];

  function sort(a,b){
    return d3.ascending(sortOrder.indexOf(a),sortOrder.indexOf(b));
  }

  var format = d3.format(".3s"); 
  var ch = viz.ch()
    .data(pos_data)
    .padding(.01)
    .sort(sort)
    .innerRadius(430)
    .outerRadius(450)
    .duration(1000)
    .chordOpacity(0.3)
    .labelPadding(.03)
    .valueFormat(function(d){return d3.format("")(d);}) //format numeri
    .fill(function(d){ return colors[d];});

  var width=1200, height=1100;

  var svg = d3.select("body").append("svg").attr("height",height).attr("width",width);

  svg.append("g").attr("transform", "translate(600,550)").call(ch);

  // adjust height of frame in bl.ocks.org
  d3.select(self.frameElement).style("height", height+"px").style("width", width+"px");  
} 

ajax功能成功并返回我的结构:

[['BA','Avventura','3340']
,['Avventura','BA','3340']
,['BA','Fantasy e per bambini','137']
,['Fantasy e per bambini','BA','137']
,['BA','Giallo','25']
,['Giallo','BA','25']
,['BA','Romanzo','542']
,['Romanzo','BA','542']
,['BA','Sport','127']
,['Sport','BA','127']
,['BA','Storia e Letteratura','54']
,['Storia e Letteratura','BA','54']
,['BT','Avventura','7']
,['Avventura','BT','7']
,['BT','Romanzo','32']
,['Romanzo','BT','32']
,['BT','Storia e Letteratura','4']
,['Storia e Letteratura','BT','4']
,['FG','Avventura','196']
,['Avventura','FG','196']
,['FG','Fantasy e per bambini','8']
,['Fantasy e per bambini','FG','8']
,['FG','Giallo','2']
,['Giallo','FG','2']
,['FG','Romanzo','89']
,['Romanzo','FG','89']
,['FG','Sport','10']
,['Sport','FG','10']
,['FG','Storia e Letteratura','2']
,['Storia e Letteratura','FG','2']
,['LE','Avventura','286']
,['Avventura','LE','286']
,['LE','Fantasy e per bambini','13']
,['Fantasy e per bambini','LE','13']
,['LE','Giallo','8']
,['Giallo','LE','8']
,['LE','Romanzo','17']
,['Romanzo','LE','17']
,['LE','Sport','15']
,['Sport','LE','15']
,['LE','Storia e Letteratura','7']
,['Storia e Letteratura','LE','7']
,['TA','Avventura','190']
,['Avventura','TA','190']
,['TA','Fantasy e per bambini','16']
,['Fantasy e per bambini','TA','16']
,['TA','Giallo','0']
,['Giallo','TA','0']
,['TA','Romanzo','27']
,['Romanzo','TA','27']
,['TA','Sport','29']
,['Sport','TA','29']
,['TA','Storia e Letteratura','7']
,['Storia e Letteratura','TA','7']
]

但是我在控制台中收到以下错误:

  

"未捕获TypeError:h.forEach不是函数"

并且图表没有开始。有人有解决方案吗?

0 个答案:

没有答案