【问题标题】:When applying the Y axis using d3, it throws an error使用 d3 应用 Y 轴时,会引发错误
【发布时间】:2021-12-28 23:10:33
【问题描述】:

我正在制作一个简单的条形图,目前正在尝试添加 Y 轴。当我尝试使用call() 函数时,它会引发错误。

d3.v7.min.js:2 Error: <path> attribute d: Expected number, "M-6,NaNH0VNaNH-6".

有谁知道怎么回事?我在下面提供了我的代码。

let dataNumsOnly = [];
let labels = [];

fetch('https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/GDP-data.json')
    .then(response => response.json())
    .then(data => {
        let dataForChart = data;
        dataForChart = dataForChart.data;
        for (let i = 0; i < dataForChart.length; i++) { //grabs data and labels.
            dataNumsOnly.push(dataForChart[i][1]);
            labels.push(dataForChart[i][0]);
        }

    let svg = d3.select('body')
    .append('svg')
    .attr('width', 962)
    .attr('height', 600);

    svg.selectAll('rect')
    .data(dataNumsOnly)
    .enter()
    .append('rect')
    .attr('width', 3)
    .attr('height', d => d / 32)
    .attr("x", (d, i) => i * 3.5)
    .attr('y', d => 600 - d / 32)
    .style('fill', "rgb(51, 173, 255)");

    let yScale = d3.scaleLinear()
    .domain(0, 100)
    .range(600, 0);
    
    const yAxis = d3.axisLeft()
    .scale(yScale);
    svg.append('g')
    .call(yAxis);
    });

谢谢。

【问题讨论】:

    标签: javascript d3.js graph charts compiler-errors


    【解决方案1】:

    没关系,我明白了!我忘记了域和范围的括号!

    let dataNumsOnly = [];
    let labels = [];
    
    fetch('https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/GDP-data.json')
        .then(response => response.json())
        .then(data => {
            let dataForChart = data;
            dataForChart = dataForChart.data;
            for (let i = 0; i < dataForChart.length; i++) { //grabs data and labels.
                dataNumsOnly.push(dataForChart[i][1]);
                labels.push(dataForChart[i][0]);
            }
    
        let svg = d3.select('body')
        .append('svg')
        .attr('width', 962)
        .attr('height', 600);
    
        svg.selectAll('rect')
        .data(dataNumsOnly)
        .enter()
        .append('rect')
        .attr('width', 3)
        .attr('height', d => d / 32)
        .attr("x", (d, i) => i * 3.5)
        .attr('y', d => 600 - d / 32)
        .style('fill', "rgb(51, 173, 255)");
    
        let yScale = d3.scaleLinear()
        .domain([0, 1000])
        .range([600, 0]);
        
        const yAxis = d3.axisLeft()
        .scale(yScale);
    
        svg.append('g')
        .attr('transform', 'translate(1)')
        .call(yAxis)
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-24
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 2015-01-15
      相关资源
      最近更新 更多