---
id: 587d7fac367417b2b2512bdb
title: Set a Domain and a Range on a Scale
required:
- src: 'https://cdnjs.cloudflare.com/ajax/libs/d3/4.3.0/d3.min.js'
challengeType: 6
videoUrl: ''
localeTitle: 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
```yml
tests:
- text: Seu código deve usar o método domain()
.
testString: 'assert(code.match(/\.domain/g), "Your code should use the domain()
method.");'
- text: 'O domain()
da escala deve ser definido para [250, 500]
.'
testString: 'assert(JSON.stringify(scale.domain()) == JSON.stringify([250, 500]), "The domain()
of the scale should be set to [250, 500]
.");'
- text: Seu código deve usar o método range()
.
testString: 'assert(code.match(/\.range/g), "Your code should use the range()
method.");'
- text: 'O range()
da escala deve ser definido como [10, 150]
.'
testString: 'assert(JSON.stringify(scale.range()) == JSON.stringify([10, 150]), "The range()
of the scale should be set to [10, 150]
.");'
- text: O texto no h2
deve ser -102.
testString: 'assert($("h2").text() == "-102", "The text in the h2
should be -102.");'
```
## Challenge Seed
## Solution
```js
// solution required
```