为了账号安全,请及时绑定邮箱和手机立即绑定

data.foreach() 不是 d3.js 上的函数

data.foreach() 不是 d3.js 上的函数

POPMUISE 2022-07-21 10:18:32
我是 d3.js 的新手并尝试创建折线图,但问题是错误data.foreach()不断出现。我不知道是什么问题。我正在尝试获取所有 JSON 数据并将其循环,以便我可以在折线图上绘制它。而且由于我在互联网上看到的大多数教程或文档仅适用于 csv 文件。我尝试创建可以创建折线图的 JSON 文件。这是我的 js 文件:$(document).ready(() => {    // set the dimensions and margins of the graph    var margin = { top: 20, right: 20, bottom: 30, left: 50 },        width = 960 - margin.left - margin.right,        height = 500 - margin.top - margin.bottom;    // parse the date / time    var parseTime = d3.timeParse("%Y");    // set the ranges    var x = d3.scaleTime().range([0, width]);    var y = d3.scaleLinear().range([height, 0]);    // define the line    var valueline = d3.line()        .x(function (d) { return x(d.Date); })        .y(function (d) { return y(d.Imports); });    // define the line    var valueline2 = d3.line()        .x(function (d) { return x(d.Date); })        .y(function (d) { return y(d.Exports); });    // append the svg obgect to the body of the page    // appends a 'group' element to 'svg'    // moves the 'group' element to the top left margin    var svg = d3.select("body").append("svg")        .attr("width", width + margin.left + margin.right)        .attr("height", height + margin.top + margin.bottom)        .append("g")        .attr("transform",            "translate(" + margin.left + "," + margin.top + ")");    function draw(data) {        var data = data[0];        // format the data        data.forEach(function (d) {            d.Date = parseTime(d.Date);            d.Imports = +d.Imports;            d.Exports = +d.Exports;        });        // sort years ascending        data.sort(function (a, b) {            return a["Date"] - b["Date"];        })        // Scale the range of the data        x.domain(d3.extent(data, function (d) { return d.Date; }));        y.domain([0, d3.max(data, function (d) {            return Math.max(d.Imports, d.Exports);        })]);任何帮助将不胜感激。
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

您想循环所有数组,然后对其进行排序...删除:

var data = data[0];

在 forEach 循环之前。


查看完整回答
反对 回复 2022-07-21
  • 1 回答
  • 0 关注
  • 259 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号