2.6 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d7fac367417b2b2512bdb | Impostare un dominio e un intervallo su una scala | 6 | 301491 | set-a-domain-and-a-range-on-a-scale |
--description--
Per impostazione predefinita, le scale usano la relazione identità. Questo significa che il valore in ingresso viene mappato al valore in uscita. Tuttavia, le scale possono essere molto più flessibili e interessanti.
Diciamo che un set di dati ha valori che vanno da 50 a 480. Queste sono le informazioni di input per una scala, noto anche come il dominio.
Si desidera mappare quei punti lungo l'asse x
sulla tela SVG, tra 10 unità e 500 unità. Queste sono le informazioni di output, note anche come l'intervallo.
I metodi domain()
e range()
impostano questi valori per la scala. Entrambi i metodi prendono un array di almeno due elementi come argomento. Ecco un esempio:
scale.domain([50, 480]);
scale.range([10, 500]);
scale(50)
scale(480)
scale(325)
scale(750)
d3.scaleLinear()
In ordine, i seguenti valori saranno visualizzati nella console: 10
, 500
, 323.37
, e 807.67
.
Si noti che la scala utilizza la relazione lineare tra i valori del dominio e dell'intervallo per capire quale dovrebbe essere l'output per un dato numero. Il valore minimo nel dominio (50) mappa al valore minimo (10) nell'intervallo.
--instructions--
Crea una scala e imposta il suo dominio a [250, 500]
e intervallo a [10, 150]
.
Nota: Puoi concatenare i metodi domain()
e range()
sulla variabile scale
.
--hints--
Il tuo codice dovrebbe usare il metodo domain()
.
assert(code.match(/\.domain/g));
Il domain()
della scala scale
dovrebbe essere impostato a [250, 500]
.
assert(JSON.stringify(scale.domain()) == JSON.stringify([250, 500]));
Il tuo codice dovrebbe usare il metodo range()
.
assert(code.match(/\.range/g));
L'intervallo range()
della scale
dovrebbe essere impostato a [10, 150]
.
assert(JSON.stringify(scale.range()) == JSON.stringify([10, 150]));
Il testo nell'h2
dovrebbe essere -102
.
assert($('h2').text() == '-102');
--seed--
--seed-contents--
<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>
--solutions--
<body>
<script>
const scale = d3.scaleLinear();
scale.domain([250, 500])
scale.range([10, 150])
const output = scale(50);
d3.select("body")
.append("h2")
.text(output);
</script>
</body>