React y D3, la mezcla perfecta para hacer visualizaciones de datos complejos

4 min lectura
Desarrollo / 02 noviembre 2016
React y D3, la mezcla perfecta para  hacer visualizaciones de datos complejos

BBVA API Market

Estamos en el mejor momento de la historia de la visualización de datos dinámica. Existen herramientas típicas de cuadros de mando que pueden utilizarse como programas de creación de gráficos como Tableau o Qlik y, además, existen numerosas librerías en JavaScript para hacer visualizaciones sencillas con conjuntos de datos complejos. Hoy en día, la combinación perfecta para este tipo de producto de análisis es la mezcla entre las librerías en JavaScript D3 y React. D3 es una gran alternativa, pero React es capaz de multiplicar sus posibilidades.

De D3 ya hemos hablado, pero de React lo hemos hecho algo menos, aunque también dedicamos un artículo a sus características. React es una librería JavaScript de código abierto desarrollada por Facebook. Esos dos elementos, código abierto y Facebook, ya son los suficientemente potentes como para llamar la atención de cualquier desarrollador front-end. Pero lo es aún más el sentido de su nacimiento: crear componentes dinámicos que puedan ser reutilizados en distintas interfaces de usuario. Además, es una librería tanto por el desarrollo por el lado del cliente como del servidor. Es una librería full-stack en JavaScript.

No hay nada más que darse una breve vuelta por Google Trends para darse cuenta de la explosión en el interés en React. Búsquedas como ‘React’, ‘Reactjs’, ‘React Native’ o ‘Facebook React’ ha explotado literalmente en el gran buscador durante el último año. Ver la curva de crecimiento muestra la atención que ha acaparado:

En este vídeo de Platzi, uno de los proyectos de formación técnica en internet con más seguidores en el mundo hispano, se explica a la perfección la importancia de React en su concepto de llevar toda la lógica JavaScript al lado del servidor y la enorme ventaja que tiene eso para la renderización de grandes volúmenes de datos o para toda la capa de seguridad de nuestros proyectos. Y cómo se producen los cambios en la vista por el lado del cliente y el concepto de DOM virtual. ;

Por qué incorporar React a D3

¿Por qué tiene sentido incorporar a los trabajos de visualización en D3 un plugin con React? Cuando un desarrollador front-end hace gráficos dinámicos en los que no va a ser necesario ningún tipo de mantenimiento, depuración o escalado posterior, lo más probable es que D3 le sirva con creces para ese trabajo finito. Pero si dichas visualizaciones de datos forman parte de un conjunto que sufrirá evoluciones posteriores, incorporar React puede añadir algunas ventajas:

render() {

	  // ...

	  return (

	      <g transform={translate}>

	          <Histogram data={this.props.data}

	                     value={(d) => d.base_salary}

	                     x={0}

	                     y={0}

	                     width={400}

	                     height={200}

	                     title="All" />

	          <Histogram data={engineerData}

	                     value={(d) => d.base_salary}

	                     x={450}

	                     y={0}

	                     width={400}

	                     height={200}

	                     title="Engineer" />

	          <Histogram data={programmerData}

	                     value={(d) => d.base_salary}

	                     x={0}

	                     y={220}

	                     width={400}

	                     height={200}

	                     title="Programmer"/>

	          <Histogram data={developerData}

	                     value={(d) => d.base_salary}

	                     x={450}

	                     y={220}

	                     width={400}

	                     height={200}

	                     title="Developer" />

	      </g>

	  )

	}

Aquí se puede ver el renderizado de cuatro histogramas, con título (title), su valores de anchura y altura (width y height), las coordenadas (x e y) y la fuente de datos para la propia visualización. Con el gráfico final resultantes:

Si te interesan las APIs financieras, visita el catálogo de BBVA

También podría interesarte