# @d3fc/d3fc-discontinuous-scale 中文文档

规范地址：https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/

版本：4\.1\.1
npm 元数据更新时间：2024-06-13T14:55:09.471Z
中文译文更新时间：2026-11-11T08:05:45.403Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40d3fc/d3fc-discontinuous-scale
原文对照：https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/?lang=original
项目主页：https://github.com/d3fc/d3fc
源码仓库：https://github.com/d3fc/d3fc

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：106 kB，29 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：1 个
- peer 依赖：d3-scale \*，d3-time \*
- 首次发布：2018-08-02T13:52:33.164Z
- 最新版本发布：2024-06-13T14:55:09.266Z
- 近 30 天下载量：65877（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：19（近 12 个月 0 个）

## 中文简介

支持非连续域的 D3 缩放, 在缩放中允许“ 断开 ” , 例如跳过周末为日期缩放 .

## 安装

```sh
npm install @d3fc/d3fc-discontinuous-scale
```

也可以使用：`pnpm add @d3fc/d3fc-discontinuous-scale`、`yarn add @d3fc/d3fc-discontinuous-scale`、`bun add @d3fc/d3fc-discontinuous-scale`

## README

# d3fc 连续比例

一个支持不连续域的 D3 缩放, 产生空白或不连续 。 例如,这可以用来创建已去除某些范围的线性尺度,在渲染的轴上产生不连续,或者与时间尺度结合使用,以便"skip"周末.

[主要 D3FC 软件包](https://github.com/d3fc/d3fc)

位于不连续范围内的勾被“ clamped” 到上边界, 因此, 如果在一个不连续范围内有多个勾, 这些勾将重叠 。 在这种情况下,建议: [`scale.ticks`](https://github.com/d3/d3-scale#ticks) 属性用于指定给定使用大小写最有意义的勾选.

## 安装

```bash
npm install @d3fc/d3fc-discontinuous-scale
```

## API 参考

-   [不连续](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous)
-   [不连续性](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuityIdentity)
-   [断续距离](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuityRange)
-   [连续性 跳过 Weekends](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuitySkipWeekends)
-   [停用提供者接口](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuity-provider-interface)

相不相干的比例尺可适应D3的比例尺,由相关的不相干性提供商提供与比例尺中任何"差分"有关的信息. 以下示例显示一个经过调整的线性尺度, 其不连续性可以去除域范围 `[50, 75]`数字 :

```javascript
import { scaleDiscontinuous, discontinuityRange } from 'd3fc-discontinuous-scale';
import { scaleLinear, axisBottom } from 'd3-scale';

var scale = scaleDiscontinuous(scaleLinear())
    .discontinuityProvider(discontinuityRange([50, 75]))
    .domain([0, 100])
    .range([0, 550]);

var axis = axisBottom()
    .scale(scale);
```

具体如下:

![](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/screenshots/discontinuous-scale.png)

有各种不同的不连续提供者,可以用在不连续的尺度上。 也可以自己写.

### 不连续

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous) 页:1.**不连续**(单位:千美元)_缩放_(中文(简体) )

构造一个新的不连续的缩放,调整给定的缩放。 如果有的话 _缩放_ 未指定,则使用 D3 身份缩放.

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_) _不连续_(单位:千美元)_价值_(中文(简体) ) [{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_invert) _不连续_。 。 。 .**倒转**(单位:千美元)_价值_(中文(简体) )

基本比额表方法,以及 **倒转** 方法被调整去除不连续。 例如,一个正则的 D3 线性比例实现如下:

```javascript
const linear = scaleLinear()
    .domain([10, 110])
    .range([0, 960]);

linear(20); // 96
linear(50); // 384
```

而不连续的缩放( 调整线性) , 并且不连续的去除域范围 `[50, 80]`,给出不同的输出 :

```javascript
const discontinuous = scaleDiscontinuous(scaleLinear())
    .discontinuityProvider(discontinuityRange([50, 70]))
    .domain([10, 110])
    .range([0, 960]);

discontinuous(20); // 120
discontinuous(50); // 480
```

通过下列方式观察到同样的行为: **倒转** 临τ.

所有经过调整的比额表方法都因不连续的比额表而重新曝光。 不连续的缩放 API 文档详细说明了缩放行为与被调整的缩放不同之处. 对于所有其他方法,你可以假设它们的行为没有变化.

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_domain) _不连续_。 。 。 .**域名**(\[_提供者_)

调整基础尺度 **域名** 方法,夹住上下域界限,以确保它们不处于不连续状态.

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_nice) _不连续_。 。 。 .**不错**(a) 与《公约》有关的其他事项

调整基础尺度 **不错** 方法,夹住所产生的域,以确保上下界限不处于不连续状态.

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_ticks) _不连续_。 。 。 .**键**(\[_计数_)

调整基础尺度 **键** 方法,删除任何属于不连续的勾选.

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-scaleDiscontinuous_discontinuityProvider) _不连续_。 。 。 .**连续性 提供者**(单位:千美元)_提供者_(中文(简体) )

若为 _提供者_ 中,设置比例尺的不连续提供者。 断续续提供商暴露了用于在域内产生漏洞的API. 此软件包包含一些不同类型的不连续性提供者,但您也可以创建自己的软件包.

### 不连续性

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuityIdentity) 页:1.**不连续性**(a) 与《公约》有关的其他事项

身份不连续提供者没有定义任何不连续,因此,当与不连续尺度相关联时,该尺度的运行方式将与调整后的规模完全相同.

### 断续距离

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuityRange) 页:1.**断续距离**(单位:千美元)_范围_(中文(简体) )

此不连续提供者定义一个或多个域 _范围_ 应排除在比额表之外。 这些范围作为Tuple提供,例如, `discontinuityRange([0, 10], [20, 30])`。支持数字和日期范围,例如创建一个跳过一天的区域,可以做到以下几点:

```javascript
const start = new Date(2015, 0, 9);
const end = new Date(2015, 0, 10);
const range = discontinuityRange([start, end]);
```

### 连续性 跳过 Weekends

[{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuitySkipWeekends) 页:1.**连续性 跳过 Weekends**(a) 与《公约》有关的其他事项 [{\\fn方正粗倩简体\\fs12\\an8\\1cHFFFF00\\b0}](https://npmcn.com/package/%40d3fc/d3fc-discontinuous-scale/#readme-discontinuitySkipUtcWeekends) 页:1.**断断续续**(a) 与《公约》有关的其他事项

这种不连续提供商的用法具有时间尺度。 这个提供者将从域名中删除所有周末,这个功能对财务时间序列图表特别有用.

### 停用提供者接口

您可以通过提供显示以下方法的对象来创建自己的不连续性提供者:

-   `clampUp` - 当给出一个值时,如果它属于不连续(即被排除在外的域范围)范围,就应当向不连续边界转移。 否则,应一律退还.
-   `clampDown` - 给定一个值时,如果它属于不连续,就应倒向不连续边界。 否则,应一律退还.
-   `distance` - 当给定一对值时,此函数返回域单位之间的距离,减去任何不连续. 断断续续.
-   `offset` - 当给出一个值和抵消时,该值应当由抵消值推进,避免任何中断,以返回最终值.
-   `copy` - 创建不连续提供者的副本.

## 常见问题

### @d3fc/d3fc-discontinuous-scale 是什么？

支持非连续域的 D3 缩放, 在缩放中允许“ 断开 ” , 例如跳过周末为日期缩放 \.

### 如何安装 @d3fc/d3fc-discontinuous-scale？

在项目目录运行 npm install @d3fc/d3fc-discontinuous-scale，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：d3-scale（\*）、d3-time（\*）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @d3fc/d3fc-discontinuous-scale 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/d3fc\_\_d3fc-discontinuous-scale 是否存在。

### @d3fc/d3fc-discontinuous-scale 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @d3fc/d3fc-discontinuous-scale 可以商用吗？

@d3fc/d3fc-discontinuous-scale 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @d3fc/d3fc-discontinuous-scale 的下载量有多少？

根据 npm 官方下载统计，@d3fc/d3fc-discontinuous-scale 在 2026/10/11 – 2026/11/09 这 30 天内被下载 65,877 次，日均约 2,196 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @d3fc/d3fc-discontinuous-scale 还在维护吗？

最新版本 4\.1\.1 发布于 2024/06/13（2 年前）；至今共发布 19 个版本，其中过去 12 个月发布了 0 个；首次发布于 2018/08/02。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

