0

我正在从这个 json 中创建一个新数组

http://data.cityofnewyork.us/resource/a7hj-s5px.json

我在哪里存储邮政编码以及邮政编码在数据集中显示的次数。

它还有其他信息,例如什么类型的噪音以及我将在稍后处理的信息。

这是我正在做的:通过这样做检查我们在数据集中有多少个唯一的邮政编码

var zipValue = [];
var zipFrequency = [];

var map = d3.map();
    data.forEach(function (d) {
        var zipCount = map.get(d.incident_zip);
        map.set(d.incident_zip, zipCount === undefined ? 1 : ++zipCount);
    });

    //storing the mapped values in an array
    zipValue = map.keys(map);
    zipFrequency = map.values(map);


var hScale = d3.scale.linear()
        .domain([0, d3.max(newArray, function(d) { return d[1]; })])
        .range([7, 70]);

最后尝试将 hScale 作为参数传递给形状。

这是我的小提琴 http://jsfiddle.net/sghoush1/rYXbG/15/

我到底哪里错了?

4

1 回答 1

0

你看过控制台吗?我检查了你的小提琴,你有一个错误:

Uncaught TypeError: Object [object Array] has no method 'hScale'

而且,它似乎是由以下原因引起的:

svg.selectAll("rect")
    .data(newArray)
    .enter()
    .append("rect")
    .attr("x", (k++) + 2)
    .attr("y", 125)
    .attr("width", 2)
    .attr("height", function (d, i) {return d.hScale(d[1]);});

最后一行应该只是return hscale(d[1]);代替d.hscale.

于 2013-08-25T21:22:23.630 回答