📅  最后修改于: 2023-12-03 15:00:18.690000             🧑  作者: Mango
D3.js 是一个用于数据可视化的JavaScript库。其中,Ordinal Scales是D3.js中的一种比例尺类型,用于离散(有限的、特定的)数据的操作和转换。
本文档是D3.js Ordinal Scales API完整参考,帮助程序员更方便地使用该比例尺。
创建一个新的ordinal比例尺,range是一个可选的输出范围。如果没有指定range,则由默认的输出值 ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"] 组成。 range是一个由输出值组成的数组,该数组的长度应与实际的比例尺操作对象数量相等。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
设置或获取比例尺所操作的值的定义域(domain)。如果传入了参数,将设置比例尺的定义域,该参数应该是一个数组,用于设置不同输入的范围。如果没有传入参数,则返回当前的定义域。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
// 获取定义域
const domain = ordinalScale.domain(); // ["apple", "banana", "cherry"]
// 设置定义域
ordinalScale.domain(["strawberry", "orange"]);
设置或获取比例尺的输出范围(range)。如果传入了参数,将设置比例尺的输出范围,该参数应该是一个数组。数组的长度应该与比例尺信号量的个数相等,元素是对应信号量的输出值。如果没有传入参数,则返回当前的输出范围。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
// 获取输出范围
const range = ordinalScale.range(); // ["red", "yellow", "pink"]
// 设置输出范围
ordinalScale.range(["green", "purple", "orange"]);
设置或获取不能识别输入时的输出值(unknown)。如果给定参数,则设置比例尺遇到未知的输入时的默认输出值。否则,返回当前的未知输出值。默认情况下,如果比例尺遇到无法识别的输入,则它将返回undefined。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"])
.unknown("gray");
// 获取未知输出值
const unknown = ordinalScale.unknown(); // "gray"
// 设置未知输出值
ordinalScale.unknown("black");
返回此比例尺的完整副本。所有的配置选项都被相应地复制,除了可选的事件侦听器。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
// 拷贝比例尺
const copyOrdinalScale = ordinalScale.copy();
根据输入的值,返回比例尺的输出值。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
const outputValue = ordinalScale("banana"); // "yellow"
设置或获取比例尺所操作的值的定义域(domain)。如果传入了参数,将设置比例尺的定义域,该参数应该是一个数组,用于设置不同输入的范围。如果没有传入参数,则返回当前的定义域。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
// 获取定义域
const domain = ordinalScale.domain(); // ["apple", "banana", "cherry"]
// 设置定义域
ordinalScale.domain(["apple", "banana", "cherry", "strawberry"]);
设置或获取比例尺的输出范围(range)。如果传入了参数,将设置比例尺的输出范围,该参数应该是一个数组。数组的长度应该与比例尺信号量的个数相等,元素是对应信号量的输出值。如果没有传入参数,则返回当前的输出范围。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"]);
// 获取输出范围
const range = ordinalScale.range(); // ["red", "yellow", "pink"]
// 设置输出范围
ordinalScale.range(["blue", "green", "purple"]);
设置或获取不能识别输入时的输出值(unknown)。如果给定参数,则设置比例尺遇到未知的输入时的默认输出值。否则,返回当前的未知输出值。默认情况下,如果比例尺遇到无法识别的输入,则它将返回undefined。
const ordinalScale = d3.scaleOrdinal()
.domain(["apple", "banana", "cherry"])
.range(["red", "yellow", "pink"])
.unknown("gray");
// 获取未知输出值
const unknown = ordinalScale.unknown(); // "gray"
// 设置未知输出值
ordinalScale.unknown("black");