freeCodeCamp/curriculum/challenges/portuguese/04-data-visualization/data-visualization-with-d3/create-a-linear-scale-with-...

2.5 KiB

id title challengeType forumTopicId dashedName
587d7fab367417b2b2512bda Criar uma escala linear com o D3 6 301483 create-a-linear-scale-with-d3

--description--

O gráfico de barras e o diagrama de dispersão traçam os dados diretamente no canvas do SVG. No entanto, se a altura de uma barra ou de um dos pontos de dados for maior que os valores de altura ou de largura do SVG, acabaria saindo dá área do SVG.

No D3, há escalas para ajudar a traçar os dados. As scales são funções que dizem ao programa como mapear um conjunto de pontos de dados brutos para os pixels do canvas do SVG.

Por exemplo, digamos que você tem um canvas de SVG de 100x500 de tamanho e que deseja representar o produto interno bruto (PIB) de vários países. O conjunto dos números estaria na faixa de bilhões ou trilhões de dólares. Você fornece ao D3 um tipo de escala para dizer como colocar os grandes valores do PIB naquela área de tamanho de 100x500.

É improvável que você trace os dados brutos como estão. Antes de desenhá-los, defina a escala de todo o seu conjunto de dados, de modo que os valores de x e y se ajustem à largura e à altura do canvas.

O D3 tem vários tipos de escala. Para uma escala linear (geralmente usada com dados quantitativos), existe o método scaleLinear() do D3:

const scale = d3.scaleLinear()

Por padrão, uma escala usa a relação de identidade. O valor de entrada é o mesmo que o valor de saída. Um desafio separado trata da maneira de alterar esta situação.

--instructions--

Altere a variável scale para criar uma escala linear. Em seguida, defina a variável output como a escala chamada com um argumento de entrada de 50.

--hints--

O texto no h2 deve ser 50.

assert($('h2').text() == '50');

O código deve usar o método scaleLinear().

assert(code.match(/\.scaleLinear/g));

A variável output deve chamar a scale com um argumento de 50.

assert(output == 50 && code.match(/scale\(\s*?50\s*?\)/g));

--seed--

--seed-contents--

<body>
  <script>
    // Add your code below this line

    const scale = undefined; // Create the scale here
    const output = scale(); // Call scale with an argument here

    // Add your code above this line

    d3.select("body")
      .append("h2")
      .text(output);

  </script>
</body>

--solutions--

<body>
  <script>

    const scale = d3.scaleLinear();
    const output = scale(50); 

    d3.select("body")
      .append("h2")
      .text(output);

  </script>
</body>