坐标轴的组成
G2中坐标轴一共由5部分组成,其中各组成部分及其对应配置参数如下图所示:
| 组成部分 | 对应配置参数 |
|---|---|
| 标题 | title |
| 坐标轴线 | line |
| 文本 | label |
| 刻度线 | tickLine |
| 网格 | grid |
坐标轴各部分代表的含义如下图所示:
坐标轴的配置
同其他属性一样,坐标轴的配置也有两种方式:
属性式配置
options:{axes: {field: {title:{},line:{},label:{},tickLine:{},grid:{}}}}
函数式配置
chart.axis("field",{title:{},line:{},label:{},tickLine:{},grid:{}});
说完坐标轴的总体配置方式,下面给大家介绍坐标轴各部分的具体配置。
标题 title
title的可配置参数如下:
title: {autoRotate: {boolean}, // 是否需要自动旋转,默认为 trueoffset: {number}, // 数值,设置坐标轴标题距离坐标轴线的距离// 设置标题的文本样式textStyle: {textAlign: 'center', // 文本对齐方向,可取值为: start middle endfill: '#404040', // 文本的颜色fontSize: '12', // 文本大小fontWeight: 'bold', // 文本粗细rotate: 30, // 文本旋转角度,以角度为单位,仅当 autoRotate 为 false 时生效textBaseline: 'top' // 文本基准线,可取 top middle bottom,默认为middle},position: 'start' | 'center' | 'end' // 标题的显示位置(相对于坐标轴线),可取值为 start center end}
注意:在G2默认主题中,坐标轴标题是默认不显示的。
//name代表下图中x轴的变量,value表示y轴的变量axes: {name: {}}

我们发现当未设置name即X轴中的title时,默认是不显示的,如果想要显示坐标轴标题,则必须将title属性设置为真值(备注:在JS中除了null、undefined、0、false、””这5个假值,其他都为真值),如果需要修改title的样式位置等属性时,只要对title内部进行属性设置就可以。
axes: {name: {title:{textStyle: { //标题样式设置fontSize:20,fill:"red"}}}}

从上图可以看出,当我们将name中的title设置为真值时,坐标轴默认的标题是该数字字段对应的属性名(这里X轴对应的属性名为name),如果要更改坐标轴的标题,需要到度量scales中的alias属性修改,修改方式如下:
scales: {name: {type: "cat",alias: "水果名" //坐标轴标题名修改}}axes: {name: {title:{textStyle: { //标题样式设置fontSize:20,fill:"red"}}}}

总结:坐标轴的title属性主要是对标题样式的一些配置,而如果要修改坐标轴标题的名字,则需要到度量scales中的alias属性中设置。
**
坐标轴线 line
line可配置参数如下:
line: {stroke: {string}, // 坐标轴线的颜色strokeOpacity: {number}, // 坐标轴线的透明度,数值范围为 0 - 1lineDash: {array}, // 设置虚线的样式,如 [2, 3]第一个用来表示实线的像素,第二个用来表示空白的像素。如果提供了奇数个值,则这个值的数列重复一次,从而变成偶数个值lineWidth: {number} // 设置坐标轴线的粗细}
这一块参数设置比较简单,自行实验调参即可,这里不再详述,放一个虚线坐标轴的配置和效果图:
line:{stroke:"red",lineDash:[2,3],lineWidth:2}

注意:G2默认主题中,y轴坐标线默认不显示,如果想让它显示,可将line属性设置为真值,如想进一步设置y轴样式,可对y轴对应的字段名的line参数进行配置。
**
文本 label
label可配置参数如下:
label: {offset: {number}, // 数值,设置坐标轴文本 label 距离坐标轴线的距离,图例legend也会移动offsetX: {number}, // 在 offset 的基础上 x 方向的偏移量offsetY: {number}, // 在 offset 的基础上 y 方向的偏移量// 设置文本的显示样式,还可以是个回调函数,回调函数的参数为该坐标轴对应字段的数值rotate: 30, // 注意,旋转角度的配置不再在 textStyle 里配置textStyle: {rotate:30,//label沿顺时针方向的旋转度数textAlign: 'center', // 文本对齐方向,可取值为: start center endfill: '#404040', // 文本的颜色fontSize: '12', // 文本大小fontWeight: 'bold', // 文本粗细textBaseline: 'top' // 文本基准线,可取 top middle bottom,默认为middle} | (text) => {// text: 坐标轴对应字段的数值},autoRotate: {boolean}, // 文本是否需要自动旋转,默认为 true
- label更详细参数配置项请看chart基本属性配置
注意:目前的3.4版本的G2对于label还存在一个bug,就是在label的textStyle中设置rotate只有首个label生效,但是在textStyle外部设置label全部有效。
**
刻度线 tickLine
tickLine可配置参数如下:
tickLine: {lineWidth: 1, // 刻度线宽stroke: '#ccc', // 刻度线的颜色strokeOpacity: 0.5, // 刻度线颜色的透明度length: 5, // 刻度线的长度,可以为负值(表示反方向渲染)alignWithLabel:true//设为负值则显示为category数据类型特有的样式}
示例:
tickLine:{stroke:'black',length:5, //注意正方向是x轴反方向lineWidth:2}

注意:X轴的tickLine是默认存在的,Y轴的axis配置信息都是默认不存在的,包括tickLine。
网格 grid
网格可配置参数如下:
grid: {align: 'center', // 声明网格顶点从两个刻度中间开始,默认从刻度点开始type: 'line' | 'polygon', // 声明网格的类型,line 表示线,polygon 表示矩形框// 当网格类型 type 为 line 时,使用 lineStyle 设置样式lineStyle: {stroke: '#d9d9d9', // 网格线的颜色lineWidth: 1, // 网格线的粗细lineDash: [4, 4 ] // 网格线的虚线配置,第一个参数描述虚线的实部占多少像素,第二个参数描述虚线的虚部占多少像素},hightLightZero: true, // 默认不高亮0轴zeroLineStyle: { // 当且仅当 highLightZero 为 true 时生效stroke: '#595959',lineDash: [ 0, 0 ]},alternateColor: '#ccc' | [ '#f80', '#ccc' ], // 当网格类型 type 为 polygon 时,使用 alternateColor 为网格设置交替的颜色,指定一个值则先渲染奇数层,两个值则交替渲染hideFirstLine: true | false, // 是否隐藏第一条网格线,默认为 falsehideLastLine: true | false // 是否隐藏最后一条网格线,默认为 false}
常用的grid属性配置如下:
grid:{type: 'line',lineStyle: {stroke: 'blue',lineWidth: 1,lineDash: [ 4, 4 ]},}

注意:G2默认主题下,Y轴默认会生成虚线网格线,X轴默认不会生成网格线。
**
Scale度量和Axis的区别
我们知道Scale和Axis都能对坐标系进行设置,所以在这里比较一下两者的区别:
Scale:度量可以设置坐标轴的刻度点个数,间距等,更多的是对刻度的设置。
Axis:坐标轴更多的是坐标轴刻度和坐标轴的样式设置,但是无法设置刻度。
