2016-06-25 27 views
1

このエラーについての参考情報が見つかりませんでしたので、誰かが私を助けてくれることを願っています。d3.jsでエラーが発生しました:t.mapが関数ではありません

私は、コードのこの作品に取り組んでいた:

<script> 
var outerWidth = 500; 
var outerHeight = 250; 
var margin = {left: 90, top:30, right:30, bottom:30}; 
var barPadding = 0.2; 

var xColumn = "Samples"; 
var yColumn = "Conc"; 

var innerWidth = outerWidth - margin.left - margin.right; 
var innerHeight = outerHeight - margin.top - margin.bottom; 

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

var g = svg.append("g") 
     .attr("transform", "translate(" + margin.left + "," +margin.top +")"); 
var xAxisG = g.append("g") 
     .attr("transform", "translate(0," + innerHeight + ")"); 
var yAxisG = g.append("g"); 

var xScale = d3.scale.ordinal().rangeBands([0, innerWidth]); 
var yScale = d3.scale.linear().range([innerHeight, 0]); 

var xAxis = d3.svg.axis().scale(xScale).orient("bottom"); 
var yAxis = d3.svg.axis().scale(yScale).orient("left"); 


function render(data){ 

    xScale.domain(data.map(function(d){return d[xColumn];})); 
    yScale.domain(0, d3.max(data, function(d){return d[yColumn];})); 

    xAxisG.call(xAxis); 
    yAxisG.call(yAxis); 


    var bars = g.selectAll("rect").data(data); 

    bars.enter().append("rect") 
     .attr("width", xScale.rangeBand()); 

    bars.attr("x", function(d){return xScale(d[xColumn]);}) 
     .attr("y", function(d){return yScale(d[yColumn]);}) 
     .attr("height", function(d){return innerHeight - yScale(d[yColumn]);}); 

    bars.exit().remove(); 
} 

function type(d){ 
    d.conc = +d.conc; 
    return d; 
} 

d3.csv("conc.csv", type, render); 
</script> 

が、私はWebコンソールで以下のエラーメッセージが表示されている必要があります。

「TypeError例外を:t.mapは機能

+0

エラーを示している行はありますか? –

+0

エラー@ http://d3js.org/d3.v3.min.js:2 –

+0

エラーは行にありません... –

答えて

2

ではありませんエラーは、この行にある:

yScale.domain(0, d3.max(data, function(d){return d[yColumn];})); 

それは

する必要があります
yScale.domain([0, d3.max(data, function(d){return d[yColumn];})]); 

角括弧[および]の挿入に注意してください。

domain()関数は、1つの引数、2つ以上のエントリを持つ配列をとります。あなたは2つの数字でそれを呼んでいます。

関連する問題