D3.js - API Array
D3 contém uma coleção de módulos. Você pode usar cada módulo de forma independente ou uma coleção de módulos juntos para realizar operações. Este capítulo explica detalhadamente a API Array.
O que é um Array?
Um Array contém uma coleção sequencial de tamanho fixo de elementos do mesmo tipo. Uma matriz é usada para armazenar uma coleção de dados, mas geralmente é mais útil pensar em uma matriz como uma coleção de variáveis do mesmo tipo.
Configurando API
Você pode configurar facilmente a API usando o script abaixo.
<script src = "https://d3js.org/d3-array.v1.min.js"></script>
<body>
   <script>
   </script>
</body> 
    Métodos de API de estatísticas de matriz
A seguir estão alguns dos métodos de API de estatísticas de array mais importantes.
- d3.min(array)
 - d3.max(array)
 - d3.extent(array)
 - d3.sum(array)
 - d3.mean(array)
 - d3.quantile(array)
 - d3.variance(array)
 - d3.deviation(array)
 
Vamos discutir cada um deles em detalhes.
d3.min (matriz)
Ele retorna o valor mínimo na matriz fornecida usando a ordem natural.
Example - Considere o seguinte script.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.min(data));
</script> 
    Result - O script acima retorna o valor mínimo na matriz 20 em seu console.
d3.max (matriz)
Ele retorna o valor máximo em uma determinada matriz.
Example - Considere o seguinte script.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.max(data));
</script> 
    Result - O script acima retorna o valor máximo na matriz (100) em seu console.
d3.extent (array)
Ele retorna o valor mínimo e máximo na matriz fornecida.
Example - Considere o seguinte script.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.extent(data));
</script> 
    Result - O script acima retorna um valor de extensão [20,100].
d3.sum (matriz)
Ele retorna a soma da matriz de números fornecida. Se a matriz estiver vazia, retorna 0.
Example - Considere o seguinte abaixo.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.sum(data));
</script> 
    Result - O script acima retorna o valor da soma 300.
d3.mean (array)
Ele retorna a média da matriz de números fornecida.
Example - Considere o seguinte abaixo.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.mean(data));
</script> 
    Result - O script acima retorna o valor médio como 60. Da mesma forma, você pode verificar o valor mediano.
d3.quantile (array)
Ele retorna o quantil p da matriz classificada de números fornecida, onde p é um número no intervalo [0, 1]. Por exemplo, a mediana pode ser calculada usando p = 0,5, o primeiro quartil em p = 0,25 e o terceiro quartil em p = 0,75. Esta implementação usa o método R-7, a linguagem de programação R padrão e o Excel.
Example - Considere o seguinte exemplo.
var data = [20, 40, 60, 80, 100];
d3.quantile(data, 0); // output is 20
d3.quantile(data, 0.5); // output is 60
d3.quantile(data, 1); // output is 100 
    Da mesma forma, você pode verificar outros valores.
d3.variance (array)
Ele retorna a variação da matriz de números fornecida.
Example - Considere o seguinte script.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.variance(data));
</script> 
    Result - O script acima retorna o valor da variação como 1000.
d3.deviation (array)
Ele retorna o desvio padrão da matriz fornecida. Se a matriz tiver menos de dois valores, ela retornará como indefinida.
Example - Considere o seguinte abaixo.
<script>
   var data = [20,40,60,80,100];
   console.log(d3.deviation(data));
</script> 
    Result - O script acima retorna o valor de desvio como 31.622776601683793.
Example- Vamos executar todos os métodos da API Array discutidos acima usando o seguinte script. Crie uma página da web “array.html” e adicione as seguintes alterações a ela.
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>
   <body>
      <h3>D3 array API</h3>
      <script>
         var data = [20,40,60,80,100];
         console.log(d3.min(data));  
         console.log(d3.max(data));
         console.log(d3.extent(data));
         console.log(d3.sum(data));
         console.log(d3.mean(data));
         console.log(d3.quantile(data,0.5));
         console.log(d3.variance(data));
         console.log(d3.deviation(data));
      </script>
   </body>
</html> 
    Agora, solicite o navegador e veremos a seguinte resposta.
                Métodos da API Array Search
A seguir estão alguns métodos importantes da API de pesquisa de Array.
- d3.scan(array)
 - d3.ascendente (a, b)
 
Vamos entender ambos em detalhes.
d3.scan (matriz)
Este método é usado para realizar uma varredura linear da matriz especificada. Ele retorna o índice do menor elemento para o comparador especificado. Um exemplo simples é definido abaixo.
Example -
var array = [{one: 1}, {one: 10}];
console.log(d3.scan(array, function(a, b) { return a.one - b.one; })); // output is 0
console.log(d3.scan(array, function(a, b) { return b.one - a.one; })); // output is 1 
    d3.ascendente (a, b)
Este método é usado para executar a função de comparador. Pode ser implementado como -
function ascending(a, b) {
   return a < b ? -1 : a > b ? 1 : a > =  b ? 0 : NaN;
} 
    Se nenhuma função de comparador for especificada para o método de classificação integrado, a ordem padrão é alfabética. A função acima retorna -1, se a for menor que b, ou 1, se a for maior que b, ou 0.
Da mesma forma, você pode executar o método descendente (a, b). Ele retorna -1, se a for maior que b, ou 1, se a for menor que b, ou 0. Esta função executa a ordem natural reversa.
Example -
Crie uma página da web array_search.html e adicione as seguintes alterações a ele.
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>
   <body>
      <h3>D3 array API</h3>
      <script>
         var array = [{one: 1}, {one: 10}];
         console.log(d3.scan(array, function(a, b) { return a.one - b.one; })); // 0
         console.log(d3.scan(array, function(a, b) { return b.one - a.one; })); // 1
      </script>
   </body>
</html> 
    Agora, solicite o navegador e veremos o seguinte resultado.
API Array Transformations
A seguir estão alguns dos métodos de API de transformações de array mais proeminentes.
- d3.cross (a, b [, redutor])
 - d3.merge(arrays)
 - d3.pairs (array [, redutor])
 - d3.permute (matriz, índices)
 - d3.zip(arrays)
 
Vamos entender cada um deles em detalhes.
d3.cross (a, b [, redutor])
Este método é usado para retornar o produto cartesiano das duas matrizes a e b fornecidas. Um exemplo simples é definido abaixo.
d3.cross([10, 20], ["a", "b"]); // output is [[10, "a"], [10, "b"], [20, "a"], [20, "b"]] 
    d3.merge (arrays)
Este método é usado para mesclar os arrays e é definido a seguir.
d3.merge([[10], [20]]); // output is [10, 20] 
    d3.pairs (array [, redutor])
Este método é usado para emparelhar elementos da matriz e é definido a seguir.
d3.pairs([10, 20, 30, 40]); // output is [[10, 20], [20, 30], [30, 40]] 
    d3.permute (matriz, índices)
Este método é usado para realizar a permutação da matriz e índices especificados. Você também pode executar os valores de um objeto em uma matriz. Isso é explicado a seguir.
var object = {fruit:"mango", color: "yellow"},
   fields = ["fruit", "color"];
d3.permute(object, fields); // output is "mango" "yellow" 
    d3.zip (matrizes)
Este método é usado para retornar uma matriz de matrizes. Se os arrays contiverem apenas um único array, o array retornado conterá os arrays de um elemento. Se nenhum argumento for especificado, a matriz retornada estará vazia. É definido abaixo.
d3.zip([10, 20], [30, 40]); // output is [[10, 30], [20, 40]] 
    Example - Crie uma página da web array_transform e adicione as seguintes alterações a ele.
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>
   <body>
      <h3>D3 array API</h3>
      <script>
         console.log(d3.cross([10, 20], ["a", "b"]));
         console.log(d3.merge([[10], [30]]));
         console.log(d3.pairs([10, 20, 30, 40]));
         var object = {fruit:"mango", color: "yellow"},
         fields = ["fruit", "color"];
         console.log(d3.permute(object, fields)); 
         console.log(d3.zip([10, 20], [30, 40]));
      </script>
   </body>
</html> 
    Agora, solicite o navegador e veremos a seguinte resposta.