Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

236
Visualizações
Gráfico de líneas JavaScript d3 con eje ordinal y datos json

Soy nuevo creando gráficos con d3 y estoy tratando de construir un gráfico de líneas con eje ordinal. He logrado visualizar correctamente el eje y y el eje x, pero no soy capaz de crear la línea.

tengo este codigo:

 var margin = {top: 10, right: 30, bottom: 30, left: 60}, width = 460 - margin.left - margin.right, height = 400 - margin.top - margin.bottom; var data = [{ name: "cat", value: 10 }, { name: "dog", value: 3 }, { name: "pig", value: 7 }, { name: "bird", value: 7 }]; //append the svg object to the body of the page var svg = d3.select("#div-svg" ).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 + ")"); //set scale var xScale = d3.scaleBand() .domain(d3.extent(data, function(d){return d["name"]})) .range([0, width]), yScale = d3.scaleLinear() .domain([min(this.value_array), max(this.value_array)]) .range([height, 0]); //add Axis svg.append("g") .attr("transform", "translate(0," + height + ")") .call(d3.axisBottom(xScale)); svg.append("g") .call(d3.axisLeft(yScale));

Hasta aquí todo funciona bien. La siguiente parte es la que no funciona.

 //line var line = d3.line() .x(function(d) { return xScale(d[0]); }) .y(function(d) { return yScale(d.value); })

Si pongo d[0] , aparece el siguiente error "el número de tipo no se puede asignar al parámetro de la cadena de enlace ". Si pongo d.name obtengo el siguiente error " 'name' does not exist on type [number,number] ". No sé cómo proceder para mostrar el gráfico. ¿Tienes alguna solución?

También me gustaría que fuera un gráfico de áreas, no solo un gráfico de líneas, en caso de que cambie el procedimiento.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

d3.extent no es lo que desea usar para el dominio. Necesita una matriz con cada uno de los nombres de las barras.

 var xScale = d3.scaleBand() .domain(data.map(function(d){return d["name"]})) .range([0, width])
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda