Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

279
Vistas
D3.js rect no se muestra en el gráfico

Empecé el reto D3.js en FreeCodeCamp, el problema es que lo resolví con el gráfico pero solo me da un display en el recto, solo uno con el ancho y alto que le puse, a continuación muestro el código .

Todo el código en

 <script> //set d3 var w = 1000, h = 500; var padding = 50; var svg = d3.select('body') .append('svg') .attr('width', w) .attr('height', h) //title svg.append('text') .attr('x', w / 2) .attr('y', 50) .text('United States GDP') fetch('https://raw.githubusercontent.com/freeCodeCamp/ProjectReferenceData/master/GDP-data.json') .then((result)=>result.json()) .then((data)=>{ var the_data = data['data'] //get vals var get_max = d3.max(data['data']) var get_mix = d3.min(data['data']) //for x var max_x = Number(get_max[0].split('-')[0]) var min_x = Number(get_mix[0].split('-')[0]) //for y var max_y = get_max[1] var min_y = get_mix[1] var xScale = d3.scaleLinear() .domain([min_x, max_x]) .range([padding, w-padding]) var yScale = d3.scaleLinear() .domain([min_y, max_y]) .range([h-padding, padding]) //the_chars for(var i in the_data){ var get_year = Number(the_data[i][0].split('-')[0]) the_data[i][0] = get_year } svg.selectAll('rect') .data(the_data) .enter() .append('rect') .attr("x", (d) => { xScale(d[0]) }) .attr('y', (d)=>{ yScale(d[1]) }) .attr("width", 200) .attr("height", 20) //axis const xAxis = d3.axisBottom(xScale); const yAxis = d3.axisLeft(yScale); //display axis svg.append("g") .attr("transform", "translate(0," + (h - padding) + ")") .call(xAxis); svg.append('g') .attr('transform', 'translate(' + padding + ', 0)') .call(yAxis) })

Ahora, ¡qué debo hacer para mostrar los gráficos!

Menciono que las etiquetas del script están incrustadas en el cuerpo.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  1. Problema : funciones de flecha sin valor de retorno. Solución : en su lugar, utilice un retorno explícito o implícito.
 .attr("x", (d) => { xScale(d[0]) }) // returns undefined .attr("x", (d) => xScale(d[0])) // implicit return .attr("x", (d) => { return xScale(d[0]) }) // explicit return
  1. Problema : valor de altura fijo. Solución Evalúe la altura de cada uno según el valor del PIB ( d[1] ) en su lugar.
 .attr('height', 20) // fixed height .attr('height', d => yScale(min_y) - yScale(d[1])) // subtract from min range to account for padding and inverted y coordinates in SVG

Solución completa en este codepen

Captura de pantalla de la solución

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda