freeCodeCamp/curriculum/challenges/portuguese/04-data-visualization/data-visualization-with-d3/set-a-domain-and-a-range-on...

3.4 KiB

id title required challengeType videoUrl localeTitle
587d7fac367417b2b2512bdb Set a Domain and a Range on a Scale
src
https://cdnjs.cloudflare.com/ajax/libs/d3/4.3.0/d3.min.js
6 Definir um domínio e um intervalo em escala

Description

Por padrão, as escalas usam o relacionamento de identidade - o valor de entrada é mapeado para o valor de saída. Mas as escalas podem ser muito mais flexíveis e interessantes. Digamos que um conjunto de dados tenha valores que variam de 50 a 480. Essa é a informação de entrada para uma escala e também é conhecida como o domínio. Você deseja mapear esses pontos ao longo do eixo x na tela do SVG, entre 10 unidades e 500 unidades. Esta é a informação de saída, que também é conhecida como o intervalo. Os métodos domain() e range() definem esses valores para a escala. Ambos os métodos usam uma matriz de pelo menos dois elementos como argumento. Aqui está um exemplo:
// Definir um domínio
// O domínio abrange o conjunto de valores de entrada
scale.domain ([50, 480]);
// Definir um intervalo
// O intervalo abrange o conjunto de valores de saída
escala.range ([10, 500]);
escala (50) // Retorna 10
escala (480) // Retorna 500
escala (325) // Retorna 323,37
escala (750) // Retorna 807,67
d3.scaleLinear ()
Observe que a escala usa o relacionamento linear entre os valores de domínio e intervalo para descobrir qual deve ser a saída para um determinado número. O valor mínimo no domínio (50) é mapeado para o valor mínimo (10) no intervalo.

Instructions

Crie uma escala e defina seu domínio para [250, 500] e alcance para [10, 150] . Nota
Você pode encadear os métodos domain() e range() na variável de scale .

Tests

tests:
  - text: Seu código deve usar o método <code>domain()</code> .
    testString: 'assert(code.match(/\.domain/g), "Your code should use the <code>domain()</code> method.");'
  - text: 'O <code>domain()</code> da escala deve ser definido para <code>[250, 500]</code> .'
    testString: 'assert(JSON.stringify(scale.domain()) == JSON.stringify([250, 500]), "The <code>domain()</code> of the scale should be set to <code>[250, 500]</code>.");'
  - text: Seu código deve usar o método <code>range()</code> .
    testString: 'assert(code.match(/\.range/g), "Your code should use the <code>range()</code> method.");'
  - text: 'O <code>range()</code> da escala deve ser definido como <code>[10, 150]</code> .'
    testString: 'assert(JSON.stringify(scale.range()) == JSON.stringify([10, 150]), "The <code>range()</code> of the scale should be set to <code>[10, 150]</code>.");'
  - text: O texto no <code>h2</code> deve ser -102.
    testString: 'assert($("h2").text() == "-102", "The text in the <code>h2</code> should be -102.");'

Challenge Seed

<body>
  <script>
    // Add your code below this line
    const scale = d3.scaleLinear();



    // Add your code above this line
    const output = scale(50);
    d3.select("body")
      .append("h2")
      .text(output);
  </script>
</body>

Solution

// solution required