Files
camperbot 529d72b242 chore(i18n,learn): processed translations (#41424)
* chore(i8n,learn): processed translations

* Update curriculum/challenges/chinese/01-responsive-web-design/applied-visual-design/use-the-u-tag-to-underline-text.md

Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
Co-authored-by: Randell Dawson <5313213+RandellDawson@users.noreply.github.com>
2021-03-09 08:51:59 -07:00

107 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 587d7fac367417b2b2512bdb
title: 按比例设置域和范围
challengeType: 6
forumTopicId: 301491
dashedName: set-a-domain-and-a-range-on-a-scale
---
# --description--
默认情况下比例尺使用一对一关系identity relationship 即输入值直接映射为输出值。 但是比例尺可以更灵活更有趣。
假设有一个数据集范围为 50 到 480 这是缩放的输入信息,也被称为<dfn></dfn>
你想沿着 `x` 轴将这些点映射到 SVG 画布上,位置介于 10 个单位到 500 个单位之间。 这是输出信息,也被称为<dfn>范围</dfn>
`domain()``range()` 方法设置比例尺的值, 它们都接受一个至少有两个元素的数组作为参数。 下面是一个例子:
```js
scale.domain([50, 480]);
scale.range([10, 500]);
scale(50)
scale(480)
scale(325)
scale(750)
d3.scaleLinear()
```
按顺序,将在控制台中显示以下值:`10``500``323.37``807.67`
注意,比例尺使用了域和范围之间的线性关系来找出给定数字的输出值。 域中的最小值50映射为范围中的最小值10
# --instructions--
创建一个比例尺,将它的域设置为 `[250, 500]`,范围设置为 `[10, 150]`
**注意:**你可以将 `domain()``range()` 方法串联在 `scale` 变量后。
# --hints--
应使用 `domain()` 方法。
```js
assert(code.match(/\.domain/g));
```
`scale``domain()` 应为 `[250, 500]`
```js
assert(JSON.stringify(scale.domain()) == JSON.stringify([250, 500]));
```
应使用 `range()` 方法。
```js
assert(code.match(/\.range/g));
```
`scale``range()` 应为 `[10, 150]`
```js
assert(JSON.stringify(scale.range()) == JSON.stringify([10, 150]));
```
`h2` 的文本应为 `-102`
```js
assert($('h2').text() == '-102');
```
# --seed--
## --seed-contents--
```html
<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--
```html
<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>
```