En este artículo vamos a hablar un poco sobre ApexCharts. Seguro que te has fijado que muchas webs presentan atractivos gráficos de datos que son además interactivos sin apenas tiempo de espera entre presentaciones. Pues bien, ApexCharts tiene gran culpa de esta magia.
ApexCharts no es nada más que una completa librería para JavaScript que puede ser empleada en numerosos proyectos ofreciendo gráficas de datos. Y quien dice JavaScript también podemos hablar de integración nativa con aplicaciones desarrolladas en Angular, React, jQuery y Vue pero también podemos usarlo con Java, PHP o ASP.NET
Para comenzar a trabajar con ApexCharts no hay nada mejor que visitar la web oficial del proyecto en donde encontraremos todo tipo de documentación, trucos y demos que nos permitirán sacar lo máximo de esta librería sin despeinarnos. Debo reconocer que su curva de aprendizaje es bastante fácil y no nos costará tomar el control. La instalación podemos hacerla de varios modos dependiendo del tipo de proyecto que estemos desarrollando.
Por ejemplo podemos instalar usando NPM:
npm install apexcharts --save
Y luego podemos importando a nuestro proyecto mediante:
import ApexCharts from 'apexcharts'
Otro modo es mediante la inserción directa en nuestro código HTML usando la etiqueta script:
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>
Y ya está, así de simple. Ahora vamos a poner manos a la obra viendo algunos ejemplos:
El gráfico más sencillo de interpretar. Este tipo de presentación se utiliza para mostrar información que ha ido cambiando con el tiempo y consiste en una línea que va enlazando puntos. Por ejemplo, es muy usado para mostrar balances de ventas, datos demográficos, etc.
Este gráfico cuenta con los siguientes elementos:
var options = {
series: [{
name: "Desktops",
data: [10, 41, 35, 51, 49, 62, 69, 91, 148]
}],
chart: {
height: 350,
type: 'line',
zoom: {
enabled: false
}
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'straight'
},
title: {
text: 'Product Trends by Month',
align: 'left'
},
grid: {
row: {
colors: ['#f3f3f3', 'transparent'], // takes an array which will be repeated on columns
opacity: 0.5
},
},
xaxis: {
categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],
}
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Al igual que los gráficos de líneas, los gráficos de área representan cómo un dato cambia con el tiempo. Sin embargo, a diferencia de los gráficos de líneas, también pueden representar visualmente el volumen. Suelen ser muy útiles para entender cómo los grupos de datos se van cruzando.
var options = {
series: [{
name: 'series1',
data: [31, 40, 28, 51, 42, 109, 100]
}, {
name: 'series2',
data: [11, 32, 45, 32, 34, 52, 41]
}],
chart: {
height: 350,
type: 'area'
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'smooth'
},
xaxis: {
type: 'datetime',
categories: ["2018-09-19T00:00:00.000Z", "2018-09-19T01:30:00.000Z", "2018-09-19T02:30:00.000Z", "2018-09-19T03:30:00.000Z", "2018-09-19T04:30:00.000Z", "2018-09-19T05:30:00.000Z", "2018-09-19T06:30:00.000Z"]
},
tooltip: {
x: {
format: 'dd/MM/yy HH:mm'
},
},
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Usamos gráficos de barras para presentar datos con barras rectangulares en alturas o longitudes proporcionales a los valores que representan. Es mejor usarlo para comparar diferentes categorías, como qué tipo de automóvil tiene la gente o cuántos millones invierte cada país en investigación y desarrollo.
var options = {
series: [{
data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380]
}],
chart: {
type: 'bar',
height: 350
},
plotOptions: {
bar: {
horizontal: true,
}
},
dataLabels: {
enabled: false
},
xaxis: {
categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan',
'United States', 'China', 'Germany'
],
}
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Siguiendo con la teoría, un gráfico de columnas es una visualización de datos en la que cada categoría está representada por un rectángulo, siendo la altura del rectángulo proporcional a los valores trazados. Al igual que los gráficos de barras, los gráficos de columnas se utilizan para comparar diferentes categorías de datos.
var options = {
series: [{
name: 'Inflation',
data: [2.3, 3.1, 4.0, 10.1, 4.0, 3.6, 3.2, 2.3, 1.4, 0.8, 0.5, 0.2]
}],
chart: {
height: 350,
type: 'bar',
},
plotOptions: {
bar: {
dataLabels: {
position: 'top', // top, center, bottom
},
}
},
dataLabels: {
enabled: true,
formatter: function (val) {
return val + "%";
},
offsetY: -20,
style: {
fontSize: '12px',
colors: ["#304758"]
}
},
xaxis: {
categories: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
position: 'top',
axisBorder: {
show: false
},
axisTicks: {
show: false
},
crosshairs: {
fill: {
type: 'gradient',
gradient: {
colorFrom: '#D8E3F0',
colorTo: '#BED1E6',
stops: [0, 100],
opacityFrom: 0.4,
opacityTo: 0.5,
}
}
},
tooltip: {
enabled: true,
}
},
yaxis: {
axisBorder: {
show: false
},
axisTicks: {
show: false,
},
labels: {
show: false,
formatter: function (val) {
return val + "%";
}
}
},
title: {
text: 'Monthly Inflation in Argentina, 2002',
floating: true,
offsetY: 330,
align: 'center',
style: {
color: '#444'
}
}
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Un gráfico circular con forma de tarta o rosquilla es un gráfico que muestra categorías individuales como porciones, o porcentajes, del total. Seguro que estás cansado de verlo por ejemplo en las últimas elecciones mostrando porcentajes de participación o los escaños ganados por uno u otro partido.
var options = {
series: [44, 55, 13, 43, 22],
chart: {
width: 380,
type: 'pie',
},
labels: ['Team A', 'Team B', 'Team C', 'Team D', 'Team E'],
responsive: [{
breakpoint: 480,
options: {
chart: {
width: 200
},
legend: {
position: 'bottom'
}
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
var options = {
series: [44, 55, 41, 17, 15],
chart: {
type: 'donut',
},
responsive: [{
breakpoint: 480,
options: {
chart: {
width: 200
},
legend: {
position: 'bottom'
}
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Los gráficos mixtos le permiten combinar dos o más tipos de gráficos en un solo gráfico. Puede utilizar gráficos mixtos cuando los números de sus datos varían mucho de una serie de datos a otra o cuando tiene tipos de datos mixtos (por ejemplo, precio y volumen). Los gráficos mixtos facilitan la visualización simultánea de diferentes tipos de datos en el mismo formato.
var options = {
series: [{
name: 'Website Blog',
type: 'column',
data: [440, 505, 414, 671, 227, 413, 201, 352, 752, 320, 257, 160]
}, {
name: 'Social Media',
type: 'line',
data: [23, 42, 35, 27, 43, 22, 17, 31, 22, 22, 12, 16]
}],
chart: {
height: 350,
type: 'line',
},
stroke: {
width: [0, 4]
},
title: {
text: 'Traffic Sources'
},
dataLabels: {
enabled: true,
enabledOnSeries: [1]
},
labels: ['01 Jan 2001', '02 Jan 2001', '03 Jan 2001', '04 Jan 2001', '05 Jan 2001', '06 Jan 2001', '07 Jan 2001', '08 Jan 2001', '09 Jan 2001', '10 Jan 2001', '11 Jan 2001', '12 Jan 2001'],
xaxis: {
type: 'datetime'
},
yaxis: [{
title: {
text: 'Website Blog',
},
}, {
opposite: true,
title: {
text: 'Social Media'
}
}]
};
var chart = new ApexCharts(document.querySelector("#chart"), options);
chart.render();
Y hasta aquí nuestro artículo de hoy. Estoy seguro que tras conocer las posibilidades que ofrece ApexCharts hemos abierto tu curiosidad. Además hemos descubierto alguna de las muchas gráficas disponibles y cómo introducir datos en ellas.
El siguiente paso sería comenzar a trabajar en formas para personalizar la apariencia de nuestros gráficos. Como puedes ver todavía hay muchas cosas por descubrir, así que te invitamos a sumergirte en los documentos de ApexCharts. ¿A qué esperas?