Estadísticos - sigcorporativo-ja/Mapea4 GitHub Wiki

Entre la información alfanumérica que tenga una capa, pueden existir atributos que posean un significado estadístico, o que sirvan para generar este tipo de gráficas: valores de población, índices de natalidad, niveles de renta, etc.

Para representar gráficamente esos datos mediante estadísticas asociadas a los elementos geométricos, a través del estilo M.style.Chart, podemos configurar los siguientes parámetros:

Constructor
Con el constructor de la gráfica, estableceremos los parámetros globales de la misma

Parámetro Descripción
type {string} - tipo de gráfica: pie, pie3D, donut, bar
radius {number} - radio de la tarta, o altura máxima de las barras
donutRadio {number} - radio del interior del donut
offsetX {number} - desplazamiento en el eje X
offsetY {number} - desplazamiento en el eje Y
stroke {object} - borde del gráfico, con color y width.
fill3DColor {string} - color de relleno del cilindro en tartas 3D
scheme {string|Array<string>|M.style.chart.schemes} - conjunto de colores que se usa para representar el gráfico. Implementados: classic, dark, pale, pastel, neon, custom. Si el numero de variables es menor que el numero de colores, se cogen los n primeros colores. En caso contrario se repiten colores volviendo a empezar por el primero hasta el último.
label {object} - Etiqueta opcional para la gráfica en sí, compuesta por:
text {string}: etiqueta
color: Color de relleno
stroke {object}: borde asociado al label, con 'color' y 'width'
font {string}: Fuente para representar el label ('Comic Sans MS',...)
scale {number}: Escala para el tamaño
offset {Array<number>}: Desplazamiento respecto a la gráfica
rotateWithView {bool} - Determina si el gráfico rota con el mapa
variables {object|M.style.chart.Variable|string|Array<string>|Array<M.style.chart.Variable> } - Son las variables que representará la grafica.

M.style.chart.Variable
Con este constructor, definiremos las caraterísticas de las variables a representar, que serán pasadas al constructor anterior a través de su parámetro 'variables'.

Parámetro Descripción
attribute {string} - nombre del atributo que representa la variable, debe ser numérico
legend {string} - descripción de la variable que aparecerá en la leyenda del mapa, si hay control TOC
fill {string} - color para representar la variable
label {object} - Etiqueta para la variable, para gráficas que no sean de tipo barras. Compuesta por:
text {string}: etiqueta - puede ser texto, atributo, o funcion especial (*)
radiusIncrement: Separación del texto respecto al borde
stroke {object}: borde asociado al label, con 'color' y 'width'
fill {string}: Color de relleno representar alo label
font {string}: Fuente para representar el label ('Comic Sans MS',...)
scale {number}: Escala para el label

💡 Solo pueden etiquetarse las estadísticas en capas con geometrías no multiparte. En los casos de capas poligonales o lineales, la gráfica asociada a cada elemento aparecerá dibujada en el centroide del mismo.

(*) La función especial que puede recibir el parámetro 'label.text' en la etiqueta, recibe los siguientes tres parámetros, con el objetivo de dar al programador toda la información que pueda necesitar para hacer los cálculos necesarios que generen una etiqueta, en caso de que no quiera etiquetar simplemente el valor:

// value - el valor del atributo. Similar a {{attributo}}
// values - los valores que recibe la gráfica
// feature - el feature representado
text {string}: function(value, values, feature) {
       // Se calcula el porcentaje de este valor respecto a los demas de la grafica
       return Math.round(value / values.reduce((tot, curr) => tot + curr) * 100) + '%'
      }

Por ejemplo, supongamos que tenemos una capa de provincias con información sobre el número de habitantes clasificada por rangos de edad, donde cada rango es un atributo de la capa. En ese caso:

// Definimos une stilo estadistico de tipo tarta
let stylechart = new M.style.Chart({
  // Caracteristicas generales de la grafica
  type: 'pie',
  radius: 25,
  stroke: {color: 'black',width: 1},
  scheme: M.style.chart.schemes.Custom, // usaremos nuestros propios colores
  
  // Variables que queremos representar 
  variables: [{
    attribute: '0_15_es', // poblacion entre 0 y 15 años
    legend: '0-15 años',
    fill: '#F2F2F2',
    label: {
      stroke:{color:'white',width: 2},
      radiusIncrement: 10,
      fill: 'black',
      text: '{{0_15_es}}',
      font: 'Comic Sans MS'
    }
  }, {
    attribute: '16_45_es', // poblacion entre 16 y 45 años
    legend: '16-45 años',
    fill: 'blue',
    label: {
      text: function(value, values, feature) {
        return value.toString();
      },
      radiusIncrement: 10,
      stroke: {color: '#fff',width: 2},
      fill: 'blue',
      font: 'Comic Sans MS'
    }
  }, {
    attribute: '45_65_es', // poblacion entre 45 y 65 años
    legend: '45-65 años',
    fill: 'pink',
    label: {
      text: '{{45_65_es}}',
      stroke: {color: '#fff',width: 2},
      fill: 'red',
      font: 'Comic Sans MS',
    }
  }, {
    attribute: '65_es', // poblacion mayor de 65 años
    legend: '65 años o más',
    fill: 'orange',
    label: {
      text: '{{65_es}}',
      stroke: {color: '#fff',width: 2},
      fill: '#886A08',
      font: 'Comic Sans MS'
    }
  }]
});

layer.setStyle(stylechart);

Podemos ver este ejemplo funcionando en este enlace. Las variables que se hayan añadido a la gráfica aparecerán en la leyenda con la descripción asociada, en caso de que el mapa contenga el control layerswitcher.

estadisticas

⚠️ **GitHub.com Fallback** ⚠️