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

387
Vistas
D3js, ¿cómo coloreo partes individuales del mapa?

Deseo colorear las diferentes partes del mapa con diferentes colores dependiendo del valor que exista. El mapa está dividido en condados y tengo valores para cada condado que deseo traducir a un color. Este es mi código para intentar colorear el mapa.

El rango que he establecido está entre [ 40, 19054 ] . Funciona bien para colorear todo el mapa de un solo color, por lo que, por ejemplo, establecer color (19000) haría que todo el mapa fuera rojo.

 let topo = json.features let datas = aggCounties d3.json("/counties.json").then(function(json) { function getCountPerKOMKODE() { for (let i = 0; i < topo.length; i++) { for (let j = 0; j < datas.length; j++) { let jsonKOMKODE = json.features[i].properties.KOMKODE; let csvKOMKODE = datas[j].kommune_kode let csvCOUNT = +datas[j].count if (csvKOMKODE == jsonKOMKODE) { return csvCOUNT } } } } } let color = d3.scaleQuantize() .domain(d3.extent(getRangeDomain())) .range(["white", "pink", "red"]) let g = svg.append("g"); g.selectAll("path").append("g") .data(topo) .enter() .append('path') .attr('class', 'county') .attr("d", path) .style('fill', color(getCountPerKOMKODE())) });

Siento que estoy malinterpretando el proceso de cómo se colorea el mapa. Por lo que he estado leyendo, ¿debería apuntar a rutas individuales y aplicar el color/valor dado?

Gracias

EDITAR: problema resuelto, gracias a @AndrewReid, vea las actualizaciones de código a continuación:

 function getCountPerKOMKODE(path) { for (let j = 0; j < datas.length; j++) { // var jsonKOMKODE = json.features[j].properties.KOMKODE; let csvKOMKODE = datas[j].kommune_kode let csvCOUNT = +datas[j].count if (csvKOMKODE == path) { return csvCOUNT } } } g.selectAll("path").append("g") .data(topo) .enter().append('path').attr('class', 'county') .attr("d", path).style('fill', function(d,i) { let komkode = d.properties.KOMKODE return color(getCountPerKOMKODE(komkode)) })

Y listo, el mapa ahora está coloreado.

about 4 years ago · Juan Pablo Isaza
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