es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo configurar la escala con d3js?

Estoy tratando de construir un gráfico de barras pero sigo obteniendo este error:

SyntaxError: falta ) después de la lista de argumentos

Dice que el problema está en la línea del método .range(), pero no lo veo. Todo me parece correcto.

Descargué el conjunto de datos desde aquí:
https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/GDP-data.json

let url = "data.json";

var svg = d3.select('body')
    .append('svg')
    .attr('width', 900)
    .attr('height', 460);

var yScale;

var arr = [];
    d3.json(url).then(function(data) {
        for (let i = 0; i < data.data.length; i++) arr[i] = data.data[i];
        }).then(() => 

          yScale = d3.scaleLinear()
                     .domain([0, d3.max(arr, (d) => d[1])])
                     .range([460, 0]);

    svg.selectAll('rect')
        .data(arr)
        .enter()
        .append('rect')
        .attr('fill', 'blue')
        .attr('height', d => d[1])
        .attr('width', 3)
        .attr('x', (d, i) => 4 * i)
        .attr('y', (d, i) => yScale(d[1]))

        );
        <script src="https://d3js.org/d3.v6.min.js"></script>
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error “SyntaxError: missing ) after argument list” generalmente significa que hay un paréntesis de cierre faltante en algún lugar de tu código. En este caso, parece que el paréntesis faltante se encuentra en la línea del método .then() donde se define la variable yScale.

    Para solucionar este error, debes agregar un paréntesis de cierre después del método .range(), de esta manera:

    .then(() => {
        yScale = d3.scaleLinear()
            .domain([0, d3.max(arr, (d) => d[1])])
            .range([460, 0]);
    })
    

    Esto asegurará que el método .then() tenga el conjunto completo de argumentos que necesita para funcionar sin errores.

Comments are closed.