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.