📜  D3.js Ordinal Scales API 完整参考(1)

📅  最后修改于: 2023-12-03 15:00:18.690000             🧑  作者: Mango

D3.js Ordinal Scales API 完整参考

D3.js 是一个用于数据可视化的JavaScript库。其中,Ordinal Scales是D3.js中的一种比例尺类型,用于离散(有限的、特定的)数据的操作和转换。

本文档是D3.js Ordinal Scales API完整参考,帮助程序员更方便地使用该比例尺。

创建Ordinal Scales
d3.scaleOrdinal([range])

创建一个新的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([domain])

设置或获取比例尺所操作的值的定义域(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([range])

设置或获取比例尺的输出范围(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([value])

设置或获取不能识别输入时的输出值(unknown)。如果给定参数,则设置比例尺遇到未知的输入时的默认输出值。否则,返回当前的未知输出值。默认情况下,如果比例尺遇到无法识别的输入,则它将返回undefined。

const ordinalScale = d3.scaleOrdinal()
  .domain(["apple", "banana", "cherry"])
  .range(["red", "yellow", "pink"])
  .unknown("gray");

// 获取未知输出值
const unknown = ordinalScale.unknown(); // "gray"

// 设置未知输出值
ordinalScale.unknown("black");
copy()

返回此比例尺的完整副本。所有的配置选项都被相应地复制,除了可选的事件侦听器。

const ordinalScale = d3.scaleOrdinal()
  .domain(["apple", "banana", "cherry"])
  .range(["red", "yellow", "pink"]);

// 拷贝比例尺
const copyOrdinalScale = ordinalScale.copy();
使用Ordinal Scales
scale(value)

根据输入的值,返回比例尺的输出值。

const ordinalScale = d3.scaleOrdinal()
  .domain(["apple", "banana", "cherry"])
  .range(["red", "yellow", "pink"]);

const outputValue = ordinalScale("banana"); // "yellow"
domain([domain])

设置或获取比例尺所操作的值的定义域(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([range])

设置或获取比例尺的输出范围(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([value])

设置或获取不能识别输入时的输出值(unknown)。如果给定参数,则设置比例尺遇到未知的输入时的默认输出值。否则,返回当前的未知输出值。默认情况下,如果比例尺遇到无法识别的输入,则它将返回undefined。

const ordinalScale = d3.scaleOrdinal()
  .domain(["apple", "banana", "cherry"])
  .range(["red", "yellow", "pink"])
  .unknown("gray");

// 获取未知输出值
const unknown = ordinalScale.unknown(); // "gray"

// 设置未知输出值
ordinalScale.unknown("black");
参考