Files

2.6 KiB

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7fac367417b2b2512bdb Establece un dominio y un rango en una escala 6 301491 set-a-domain-and-a-range-on-a-scale

--description--

Por defecto, las escalas usan la relación de identidad. Esto significa que el valor de entrada se asigna al valor de salida. Sin embargo, las escalas pueden ser mucho más flexibles e interesantes.

Digamos que un conjunto de datos tiene valores entre 50 y 480. Esta es la información de entrada para una escala, también conocido como el dominio.

Quieres trazar esos puntos a lo largo del eje x en el lienzo SVG, entre 10 unidades y 500 unidades. Esta es la información de salida, también conocida como el rango.

Los métodos domain() y range() establecen estos valores para la escala. Ambos métodos toman un arreglo de al menos dos elementos como argumento. Aquí un ejemplo:

scale.domain([50, 480]);
scale.range([10, 500]);
scale(50)
scale(480)
scale(325)
scale(750)
d3.scaleLinear()

En orden, los siguientes valores se mostrarían en la consola: 10, 500, 323.37, y 807.67.

Observa que la escala usa la relación lineal entre los valores del dominio y del rango para averiguar cuál debe ser la salida para un número dado. El valor mínimo en el dominio (50) se asigna al valor mínimo (10) en el rango.

--instructions--

Crea una escala y establece su dominio a [250, 500] y su rango a [10, 150].

Nota: Puedes encadenar los métodos domain() y range() a la variable scale.

--hints--

Tu código debe usar el método domain().

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

El domain() de scale (escala) debe ser establecido a [250, 500].

assert(JSON.stringify(scale.domain()) == JSON.stringify([250, 500]));

Tu código debe usar el método range().

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

El range() de scale (escala) debe ser establecido a [10, 150].

assert(JSON.stringify(scale.range()) == JSON.stringify([10, 150]));

El texto en el h2 debe ser -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>