将json中的数据合并到一个新的数组中,并使用d3.js绘制形状
consolidating data from a json in a new array and drawing shapes with it using d3.js
我正在用这个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/
我到底哪里出了问题?
您看过控制台吗?我检查了你的小提琴,你有一个错误:
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
。
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- D3从嵌套的JSON中绘制第二个圆环图
- 如何用d3.js绘制折线图
- 用d3和numericjs在javascript中绘制错误椭圆
- 在画布上绘制d3形状的面积图
- 如何使用d3.js从csv文件中绘制areaplot?请任何人分享代码
- 使用Node js和D3实时绘制地图上的国家名称
- 如何在D3.js中绘制地图投影上的点,并使用范围滑块过滤数据
- d3绘制动画折线图的基本示例
- 用javascript中的d3绘制圆圈并在上面写文字
- 使用角度.js和 D3 绘制图表
- 通过D3绘制HTML表格;t更新现有数据
- 单击按钮打开一个新窗口,并用D3绘制多个大圆
- 转换PHP制作的JSON“;json_encode”;,以用D3绘制这些值
- 在DC中为D3绘制多维图
- D3 +绘制SVGS +错误覆盖
- 用d3绘制不连续的线条
- D3绘制数据集的选择部分
- D3 绘制圆圈数组
- 在鼠标位置用D3绘制圆圈