D3 坐标轴与刻度
2022-04-21
坐标轴(Axis)通常在一些学术图表中进行运用,通常很多的情况下图表中数据都是经过比例尺内计算的出的大小与坐标位置,这个时候就需要刻度尺来进行标注,来辅助读者进行观看,可以通过下图来明显感受到差距:
通常的情况下,读者可会对图标的美观性和专业性都会选择有坐标轴和刻度的图表,通常在 d3.js 中绘画出一个坐标轴需要以下方法的支持:
| ID | DA | FA |
|---|---|---|
| d3.svg.axis() | 创建一个默认的新坐标轴 | |
| axis(选择集) | 将此坐标轴绑定到指定的选择集中(需要具有<svg>或<g>元素) |
|
| axis.scale() | 设定或获取坐标轴的比例尺 | |
axis.orient(top[bottom、left、right]) |
设定或获取坐标轴的方向 | |
| 刻度 | ||
| axis.ticks() | 设置或获取坐标轴的分割数(默认为10) |
|
| axis.tickValues() | 设置或获取坐标轴的指定刻度 | |
| axis.tickSize() | 设置或获取坐标轴内外的刻度长度(默认为6) |
|
axis.innerTickSize() 设置或获取坐标轴内刻度的长度 |
||
axis.outerTickSize() 设置或获取坐标轴外刻度的长度 |
||
| axis.tickFormat() | 设置或获取刻度尺的格式或单位 |
坐标轴
定义

在上图中我们主要先通过定义坐标轴的基本高度与宽度以及最终的位置,其主要分为四个阶段,分别为位置、添加、比例尺、坐标轴以及一个坐标轴的外部方法通过四个阶段可以生成一个标准且带有刻度尺的一个坐标轴。
1 | // 定义坐标轴高度与宽度以及(x,y)的位置 |
bottom and left

1 | ```js |
样式

除了生成 svg 坐标轴之外,我们还需要通过为path(路径)、line(刻度尺)、text(文本)这三个svg元素添加样式,让其变得简洁。
less
1 | @color: #929292; |
css
1 | .axis path, /* 坐标轴路径设置 */ |
刻度
刻度,主要依赖于坐标轴,是一个专业学术图表中较为重要的一部分。我们可以通过属性或方法来定义刻度的方向、间隔、长度、文字格式等。
刻度位置
ticks()

通常的情况下ticks()主要用于控制刻度尺的生成,在 d3.js 中 ticks的概念是指:“一个至到另一个分割的特定数量”,即分割的数量。如将ticks()设置为5,那么将会输出具有刻度为0,2,4,6,8,10的坐标轴。
1 | // 定义坐标轴高度与宽度以及(x,y)的位置 |
tickValues()

1 |
|
刻度长度
tickSize()

1 |
|
innerTickSize() and outerTickSize()

1 |
|
文字格式
TickFormat

1 |
|
