Estoy buscando alguna guía o un ejemplo de cómo hacer un geochart en d3.js. Necesito algo como this one en google charts, y recurriendo a d3.js ya que necesito un poco de personalización. Hasta ahora, la muestra de d3.js más cercana que encontré es this, pero el código es muy largo y espero encontrar algo más simple.geochart en d3.js
Respuesta
¿Está buscando un mapa de coropletas? Aquí hay un recent example in 28 lines of code.
Este ejemplo utiliza la proyección predeterminada, d3.geo.albersUsa, que es una proyección compuesta para los Estados Unidos, incluidos Alaska, Hawai y Puerto Rico. Si desea cambiar la región visible, probablemente también desee cambiar la proyección; d3.geo.albers es bueno para los mapas de coropletas porque es de área equitativa. La proyección albers le permite configurar el origin para que pueda enfocarse en una parte específica del mundo, y todas las proyecciones le permiten especificar scale y translate para posicionar el mapa en pantalla.
Si desea ver un mapa del mundo, también me gustaría ver el desarrollo en curso de la extended projections plugin. Esto agrega varias proyecciones de mapas útiles, particularmente para mapas mundiales, como el Winkel Tripel. La próxima versión de D3 también incluirá algunas características nuevas y emocionantes, como la rotación tridimensional para cualquier proyección (incluido corte antemeridiano, prueba dragging this example), adaptive resampling y recorte mejorado.
En cuanto a la coloración del coroplete, puede, por supuesto, colorear las características geográficas como quiera redefiniendo el estilo de "relleno" en función de los datos.
gracias. ¿Qué determina qué región es visible en la pantalla (por ejemplo, continente)? ¿Puedo usar nombres de países para colorear? –
Con todo el respeto debido a @mbostock y su respuesta, pensé que podría agregar algunos recursos adicionales para cualquier persona que se encuentre con esta pregunta.
El ejemplo en el enlace proporcionado por @Yaron Naveh parece ser Mercator projection. Puede encontrar más información sobre las instalaciones de proyección de Mercator de d3.js en el d3.js API. @mbostock también ha tenido la amabilidad de crear bloques/ideas para cada una de las proyecciones en la API (haga clic en la imagen en miniatura de la proyección para ver el ejemplo). Aquí están los enlaces a una simple proyección de Mercator block/gist.
En cuanto al "El arte de preguntar: ¿Cómo te sientes?" link, aquí hay un pequeño código para ir con lo que @mbostock dijo sobre colorear usando el estilo de relleno en función de los datos. En este ejemplo, simplemente selecciono el valor Unicode para el primer carácter del nombre del país en el archivo JSON y hago un color CSS a partir de ese valor usando "steelblue" (# 4682B4 = 4620980) como una especie de semilla (probablemente quiere calcular tonos/tintes).
d3.json("readme.json", function(collection) {
d3.select("svg").selectAll("path")
.data(collection.features)
.enter().append("path")
.attr("d", d3.geo.path().projection(d3.geo.mercator()))
.style("fill", function(d) { return '#'+Math.floor(d.properties.name.charCodeAt(0)/100*4620980).toString(16); });
});
Se puede extraer el ejemplo completo aquí como block/gist.
(@mbostock - Gracias por una gran herramienta!)
- 1. escalando proyecciones d3.js
- 2. d3.js y document.onReady
- 3. D3.js Transiciones
- 4. Área apilada en D3.js
- 5. d3.js save states
- 6. d3.js Agregue un círculo en d3.geo.path
- 7. círculos superpuestos evitar d3.js
- 8. d3.js Odd Rotation Behavior
- 9. d3 js nodos como imágenes
- 10. Gráficos en capas en d3.js
- 11. haciendo un arco en d3.js
- 12. csv a matriz en d3.js
- 13. Diagrama de fuerza jerárquica usando D3.js
- 14. anexando lienzo d3.js a div
- 15. D3.js - cargar y manipular datos externos
- 16. d3.js - transformación y transición, líneas múltiples
- 17. Zoom gráfico de barras con d3.js
- 18. SVG a Canvas con d3.js
- 19. d3.js & json - código de muestra simple?
- 20. crear ejes d3.js sin numerar
- 21. d3.js fuerza colapsable con etiquetas
- 22. Cómo importar datos XML utilizando d3.js?
- 23. Agregar el menú desplegable usando d3.js
- 24. Hacer que d3.js trabaje con raphael.js
- 25. ¿Equivalente del selector 'no' de jQuery en D3.js?
- 26. Graph orientación y el nodo de posicionamiento en d3.js
- 27. Un simple ejemplo de diagrama de dispersión en D3.js?
- 28. d3.js - barras espaciadas uniformemente en una escala de tiempo
- 29. Contraer/expandir nodos secundarios de árbol en d3.js?
- 30. Configure-diseño fijo gráfico estático en d3.js
También podría evaluar una solución de mapa de imagen, consulte http://www.netzgesta.de/mapper/ – Nelson