Advertisement
  1. Code
  2. JavaScript

Comenzando Con Chart.js: Gráficas de Radar y Área Polar

Scroll to top
Read Time: 8 min
This post is part of a series called Getting Started With Chart.js.
Getting Started With Chart.js: Line and Bar Charts
Getting Started With Chart.js: Pie, Doughnut, and Bubble Charts

() translation by (you can also view the original English article)

El tutorial anterior de esta serie se centra en crear gráficas de línea y de barra usando Chart.js. Ambas gráficas tienen sus propios usos y opciones de configuración que cubrimos a detalle en el último tutorial.

En este tutorial, aprenderás sobre dos nuevos tipos de gráfica que pueden ser creados usando Chart.js: gráficas de radar y área polar. Justo como el tutorial anterior, comenzaremos con un breve vistazo general de los tipos de gráfica y después continuaremos a una discusión más detallada.

Creando Gráficas de Radar

Las gráficas de línea y barra son útiles cuando quieres comparar solo una o dos propiedades de un número grande de objectos---por ejemplo la población de todos los países en Asia o el número de diferentes contaminantes en la atmósfera.

Digamos que quieres comparar la densidad, opacidad, viscosidad, indice de refracción y punto de ebullición de solo tres líquidos diferentes. Crear una gráfica de barra para estos datos puede ser problemático ya que necesitarás crear cinco columnas diferentes para cada líquido. También será difícil comparar las propiedades correspondientes de los líquidos.

En situaciones en donde tienes que comparar muchas propiedades de solo unos cuántos objetos, crear una gráfica de radar es el método más eficiente de visualizar y comparar información. Estas gráficas también son conocidas como gráficas de araña.

Desde Wikipedia, una gráfica de radar es un método gráfico de mostrar información multi-variable en la forma de una gráfica bi-dimensional de tres o más variables cuantitativas representadas en ejes comenzando desde el mismo punto. Las posiciones relativas y ángulos de los ejes son típicamente no informativos.

Creemos nuestra primera gráfica de radar ahora. Las gráficas de radar son creadas estableciendo la llave type en Chart.js a radar. Aquí está un ejemplo muy básico.

1
var radarChart = new Chart(marksCanvas, {
2
    type: 'radar',
3
    data: marksData,
4
    options: chartOptions
5
});

Tracemos las calificaciones de dos estudiantes en cinco materias diferentes. Aquí está el código para proporcionar la información para crear la gráfica.

1
var marksData = {
2
  labels: ["English", "Maths", "Physics", "Chemistry", "Biology", "History"],
3
  datasets: [{
4
    label: "Student A",
5
    backgroundColor: "rgba(200,0,0,0.2)",
6
    data: [65, 75, 70, 80, 60, 80]
7
  }, {
8
    label: "Student B",
9
    backgroundColor: "rgba(0,0,200,0.2)",
10
    data: [54, 65, 60, 70, 70, 75]
11
  }]
12
};
13
14
var radarChart = new Chart(marksCanvas, {
15
  type: 'radar',
16
  data: marksData
17
});

La primera gráfica que usualmente creamos no tiene ningún color de fondo específicamente establecido por nosotros. Sin embargo, las gráficas de radar pueden tener mucha superposición, haciendo difícil identificar correctamente los puntos de datos sin ningún código de color.

Por esta razón, un color ha sido asignado a cada conjunto de datos usando la llave backgroundColor. La siguiente demostración muestra el resultado final de nuestro código. Como puedes ver, ahora es muy sencillos comparar el desempeño de ambos estudiantes en diferentes temas.

Además del color de fondo, también puedes cambiar el color y ancho de borde de la gráfica usando las llaves borderColor y borderWidth. También es posible que crees bordes punteados en lugar de líneas continuas usando la llave borderDash. Esta llave acepta un arreglo como su valor.

El primer elemento del arreglo determina la longitud de los guiones, y el segundo elemento determina el espacio entre estos. También puedes proporcionar un valor de compensación para dibujar los guiones usando la llave borderDashOffset.

También puedes controlar el color de borde y anchura para puntos trazados usando pointBorderColor y pointBorderWidth. De manera similar, también puedes establecer un color de fondo para puntos diferentes usando la llave pointBackgroundColor. El tamaño de los puntos trazados puede ser especificado usando la llave pointRadius. Puedes controlar la distancia a la cual los puntos deberían comenzar a interactuar con el ratón usando la llave pointHitRadius.

También puedes controlar la apariencia de los puntos trazados al deslizar encima usando las llaves pointHoverBackgroundColorpointHoverBorderColor y pointHoverBorderWidth. Una cosa que necesitas recordar es que estas llaves de deslizamiento no esperarán a que realmente deslices sobre el elemento para dispararse. Los cambios cobrarán efecto tan pronto como estés dentro del radio de acción establecido arriba.

Hay muchas formas disponibles para puntos trazados. Estos son circulares por defecto. Sin embargo, puedes cambiar la forma a trianglerectrectRoundedrectRotcrosscrossRotstarline, y dash.

Usemos todas estas llaves para re-dibujar la gráfica de radar anterior. Aquí está el código para proporcionar opciones de configuración para los conjuntos de datos y las escalas.

1
var marksData = {
2
  labels: ["English", "Maths", "Physics", "Chemistry", "Biology", "History"],
3
  datasets: [{
4
    label: "Student A",
5
    backgroundColor: "transparent",
6
    borderColor: "rgba(200,0,0,0.6)",
7
    fill: false,
8
    radius: 6,
9
    pointRadius: 6,
10
    pointBorderWidth: 3,
11
    pointBackgroundColor: "orange",
12
    pointBorderColor: "rgba(200,0,0,0.6)",
13
    pointHoverRadius: 10,
14
    data: [65, 75, 70, 80, 60, 80]
15
  }, {
16
    label: "Student B",
17
    backgroundColor: "transparent",
18
    borderColor: "rgba(0,0,200,0.6)",
19
    fill: false,
20
    radius: 6,
21
    pointRadius: 6,
22
    pointBorderWidth: 3,
23
    pointBackgroundColor: "cornflowerblue",
24
    pointBorderColor: "rgba(0,0,200,0.6)",
25
    pointHoverRadius: 10,
26
    data: [54, 65, 60, 70, 70, 75]
27
  }]
28
};
29
30
var chartOptions = {
31
  scale: {
32
    ticks: {
33
      beginAtZero: true,
34
      min: 0,
35
      max: 100,
36
      stepSize: 20
37
    },
38
    pointLabels: {
39
      fontSize: 18
40
    }
41
  },
42
  legend: {
43
    position: 'left'
44
  }
45
};

Dentro del objeto chartOptions, los valores min y max son usados para establecer los valores mínimo y máximo para la escala. La llave stepSize puede ser usada para decirle a Chart.js el número de pasos que debería tomar para ir de min a max. Aquí está el resultado final del código de arriba.

Creando Gráficas de Área Polar

Las gráficas de área polar son similares a las gráficas de pastel. Dos diferencias mayores entre estas gráficas son que en las gráficas de área polar todos los sectores tienen ángulos iguales y el radio de cada sector depende del valor trazado. Estas gráficas son usadas para trazar fenómenos cíclicos. Por ejemplo, puedes usarla para trazar el número de pájaros migratorios de una especie dada en tu área en cada estación del año.

El radio de cada sector en estas gráficas es proporcional a la raíz cuadrada del número de objetos correspondientes. En el caso de pájaros migratorios, el radio será proporcional a la raíz cuadrada del número de pájaros en tu área.

Puedes crear gráficas de área polar en Chart.js estableciendo la llave type a polarArea. Aquí está el código básico que necesitas para crear una gráfica polar.

1
var polarAreaChart = new Chart(birdsCanvas, {
2
    type: 'polarArea',
3
    data: birdsData,
4
    options: chartOptions
5
});

Aquí está el código para trazar el número de pájaros migratorios en una gráfica de área polar. Los únicos datos provistos en este punto es el número de pájaros y el color de fondo para diferentes estaciones.

1
var birdsData = {
2
  labels: ["Spring","Summer","Fall","Winter"],
3
  datasets: [{
4
    data: [1200, 1700, 800, 200],
5
    backgroundColor: [
6
      "rgba(255, 0, 0, 0.5)",
7
      "rgba(100, 255, 0, 0.5)",
8
      "rgba(200, 50, 255, 0.5)",
9
      "rgba(0, 100, 255, 0.5)"
10
    ]
11
  }]
12
};
13
14
var polarAreaChart = new Chart(birdsCanvas, {
15
  type: 'polarArea',
16
  data: birdsData
17
});

El código de arriba creará la siguiente gráfica de área polar.

La gráfica de área polar proporciona las opciones usuales para establecer el backgroundColorborderWidthborderColorhoverBackgroundColorhoverBorderWidth, y hoverBorderColor. También hay algunas llaves específicas de gráfica de área polar que puedes usar para personalizar su apariencia.

Por ejemplo, puedes establecer el ángulo inicial para el primer valor en el conjunto de datos usando la llave startAngle. De manera similar, la llave lineArc que puede ser encontrada bajo scale puede ser usada para especificar si las líneas dibujadas deberías o no ser circulares estableciendo su valor a true o false respectivamente.

Los sectores dibujados en la gráfica de área polar son rotados y escalados por defecto. Sin embargo, puedes prevenir la animación de escala estableciendo el valor de la llave animateScale a false. De manera similar, rotar la animación puede ser desactivado estableciendo el valor de la llave animateRotate a false. Ambas llaves están disponibles bajo animation.

El código de abajo cambia el valor de unas cuantas llaves para hacer la gráfica visualmente más atractiva.

1
var birdsData = {
2
  labels: ["Spring", "Summer", "Fall", "Winter"],
3
  datasets: [{
4
    data: [1200, 1700, 800, 200],
5
    backgroundColor: [
6
      "rgba(255, 0, 0, 0.6)",
7
      "rgba(0, 255,200, 0.6)",
8
      "rgba(200, 0, 200, 0.6)",
9
      "rgba(0, 255, 0, 0.6)"
10
    ],
11
    borderColor: "rgba(0, 0, 0, 0.8)"
12
  }]
13
};
14
15
var chartOptions = {
16
  startAngle: -Math.PI / 4,
17
  legend: {
18
    position: 'left'
19
  },
20
  animation: {
21
    animateRotate: false
22
  }
23
};
24
25
var polarAreaChart = new Chart(birdsCanvas, {
26
  type: 'polarArea',
27
  data: birdsData,
28
  options: chartOptions
29
});

Además de rotar la gráfica y deshabilitar la animación de rotación, también hemos movido la leyenda a la izquierda de la gráfica estableciendo el valor de position a left. Esto deja suficiente espacio encima de la gráfica para mostrarla apropiadamente.

Ideas Finales

En este tutorial, aprendiste sobre las aplicaciones de gráficas de radar y área polar. Después de eso, aprendiste cómo crear gráficas básicas y personalizarlas con varias opciones de configuración disponibles en Chart.js. Aprenderás sobre gráficas de pastel y burbuja en la siguiente parte de la serie.

Si estás trabajando con la web, especialmente en el front-end, es importante saber JavaScript. Por supuesto, no es sin sus curvas de aprendizaje, y hay bastantes frameworks y librerías para mantenerte ocupado, también. Si estás buscando recursos adicionales para estudiar o usar en tu trabajo, revisa lo que tenemos disponible en el marketplace de Envato.

Si tienes alguna pregunta sobre este tutorial, por favor déjame saber en los comentarios.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.