Chart 类,是使用 G2 进行绘图的入口。

构造函数

  • new Chart(chartCfg): Chart

参数:

构造函数入参 chartCfg 是一个对象,可配置的属性如下:

属性名 说明 类型 默认值
container 指定 chart 绘制的 DOM,可以传入 DOM id,也可以直接传入 dom 实例。 string | HTMLElement
autoFit 图表是否自适应容器宽高,默认为 false,用户需要手动设置 width 和 height。当 autoFit: true 时,会自动取图表容器的宽高,如果用户设置了 height,那么会以用户设置的 height 为准。 boolean false
width 图表宽度。 number -
height 图表高度。 number -
padding 设置图表的内边距,使用方式参考 CSS 盒模型。
example
1. padding: 20
2. padding: [ 10, 30, 30 ]
‘auto’ | number | number[] ‘auto’
appendPadding 图表的内边距会在图表的padding的基础上加上appendPadding,使用方式参考 CSS 盒模型。
example
1. appendPadding: 20
2. appendPadding: [ 10, 30, 30 ]
number | number[] -
defaultInteractions 配置图表默认交互,仅支持字符串形式。 string[] ['tooltip', 'legend-filter', 'legend-active', 'continuous-filter']
limitInPlot 是否对超出坐标系范围的 Geometry 进行剪切。 boolean -
localRefresh 是否开启局部刷新,默认开启。 boolean true
pixelRatio 设置设备像素比,默认取浏览器的值 window.devicePixelRatio number window.devicePixelRatio
renderer 指定渲染引擎,默认使用 canvas。 ‘canvas’ | ‘svg’ ‘canvas’
theme 主题。 object | string -
visible chart 是否可见,默认为 true,设置为 false 则会隐藏。 boolean true

返回值: Chart

属性

获取方式:chart.destroyed

destroyed

destroyed: boolean = false

标识 chart 对象是否已销毁。

ele

ele: HTMLElement

Chart 的 DOM 容器。

geometries

geometries: Geometry[] = []

所有的 geometry 实例。

height

height: number

图表高度。

interactions

interactions: Record‹string, Interaction

所有的 Interaction 实例。

views

views: View[] = []

所有的子 view。

方法

data

data(data): View

装载数据源。

  1. view.data([{ city: '杭州', sale: 100 }, { city: '上海', sale: 110 } ]);

参数:

属性名 说明 类型
data 数据源,json 数组。 object[]

返回值: View

source

chart.data() 方法的别名。

coordinate

coordinate(option): CoordinateController

坐标系配置。

example

  1. chart.coordinate({
  2. type: 'polar',
  3. cfg: {
  4. radius: 0.85,
  5. },
  6. actions: [
  7. [ 'transpose' ],
  8. ],
  9. });

参数:

option 是一个对象,可配置的属性如下:

属性名 说明 类型
type 坐标系类型。 “polar” | “theta” | “rect” | “cartesian” | “helix”
cfg 坐标系配置项,目前常用于极坐标,是一个对象,支持的属性如下:
startAngle: number,用于极坐标,配置起始弧度。
endAngle: number,用于极坐标,配置结束弧度。
radius: number,用于极坐标,配置极坐标半径,0 - 1 范围的数值。
innerRadius: number,用于极坐标,极坐标内半径,0 -1 范围的数值。
object
actions 坐标系变换操作:
1. rotate 表示旋转,使用弧度制。
2. scale 表示沿着 x 和 y 方向的缩放比率。
3. reflect 表示沿 x 方向镜像或者沿 y 轴方向映射。
4. transpose 表示 x,y 轴置换。
[
[“reflect”, “x” | “y”]
[“rotate”, number]
[“scale”, number, number]
[“transpose”]
]

返回值: CoordinateController

coordinate(type, coordinateCfg): CoordinateController

声明坐标系类型,并进行配置。

  1. // 直角坐标系,并进行转置变换
  2. view.coordinate('rect').transpose();
  3. // 默认创建直角坐标系
  4. view.coordinate();

参数:

属性名 说明 类型
type 坐标系类型 “polar” | “theta” | “rect” | “cartesian” | “helix”
coordinateCfg 坐标系配置项,目前常用于极坐标,是一个对象,支持的属性如下:
startAngle: number,用于极坐标,配置起始弧度。
endAngle: number,用于极坐标,配置结束弧度。
radius: number,用于极坐标,配置极坐标半径,0 - 1 范围的数值。
innerRadius: number,用于极坐标,极坐标内半径,0 -1 范围的数值。
object

返回值: CoordinateController

坐标系变换操作:

  1. view.coordinate().transpose().scale(1, 1).rotate(Math.PI * 0.4).reflect('x' | 'y' | 'xy');

coord

chart.coordinate() 方法别名。

animate

animate(status): View

参数:

属性名 说明 类型
status 是否开启动画。 boolean

返回值: View

axis

axis(status): View

开启或者关闭坐标轴。

  1. view.axis(false); // 不展示坐标轴

参数:

属性名 说明 类型
status 坐标轴开关。 boolean

返回值: View

axis(field, axisOption): View

对特定的某条坐标轴进行配置。

example

  1. view.axis('city', false); // 不展示 'city' 字段对应的坐标轴
  2. // 将 'city' 字段对应的坐标轴的标题隐藏
  3. view.axis('city', {
  4. title: null,
  5. });

参数:

属性名 说明 类型
field 要配置的坐标轴对应的字段名称 string
axisOption 坐标轴具体配置 AxisOption
  • axisOption 是一个对象,支持的属性配置如下:
  1. {
  2. /**
  3. * 适用于直角坐标系,设置坐标轴的位置。
  4. */
  5. position?: 'top' | 'bottom' | 'right' | 'left';
  6. /**
  7. * 坐标轴线的配置项,null 表示不展示。
  8. */
  9. line?: {
  10. style?: ShapeAttrs; // 坐标轴线的配置项
  11. } | null;
  12. /**
  13. * 坐标轴刻度线线的配置项,null 表示不展示。
  14. */
  15. tickLine?: {
  16. style?: ShapeAttrs; // 坐标轴刻度线的样式配置项
  17. alignTick?: boolean; // 是否同 tick 对齐
  18. length?: number; // 长度
  19. }| null;
  20. /**
  21. * 坐标轴子刻度线的配置项,null 表示不展示。
  22. */
  23. subTickLine?: {
  24. style?: ShapeAttrs; // 坐标轴刻度线的样式配置项
  25. count?: number; // 子刻度个数
  26. length?: number; // 子刻度线长度
  27. } | null;
  28. /**
  29. * 标题的配置项,null 表示不展示。
  30. */
  31. title?: {
  32. offset?: number; // 标题距离坐标轴的距离
  33. position: 'center', // 标题的位置 start, center, end
  34. style?: ShapeAttrs; // 标题文本配置项
  35. autoRotate?: boolean; // 是否自动旋转
  36. }| null;
  37. /**
  38. * 文本标签的配置项,null 表示不展示。
  39. */
  40. label?: {
  41. style?: ShapeAttrs; // 坐标轴文本的样式
  42. offset?: number; // label 的偏移量
  43. rotate?: number; // 文本旋转角度
  44. formatter?: (text: string, item: ListItem, index: number) => any; // 格式化函数
  45. autoRotate?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string; // 是否自动旋转,默认 true
  46. autoHide?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string; // 是否自动隐藏,默认 false
  47. autoEllipsis?: boolean | (isVertical: boolean, labelGroup: IGroup, limitLength?: number) => boolean; | string; // 是否自动省略,默认 false
  48. } | null;
  49. /** 坐标轴网格线的配置项,null 表示不展示。 */
  50. grid?: {
  51. /**
  52. * 线的样式。
  53. */
  54. line?: {
  55. type?: string; // 栅格线的类型,'line' 或者 'circle'
  56. style?: ShapeAttrs; // 栅格线的样式配置项
  57. };
  58. /**
  59. * 两个栅格线间的填充色。
  60. */
  61. alternateColor?: string | string[];
  62. /**
  63. * 对于 circle 是否关闭 grid。
  64. */
  65. closed?: boolean;
  66. /**
  67. * 是否同刻度线对齐,如果值为 false,则会显示在两个刻度中间。
  68. */
  69. alignTick?: boolean;
  70. } | null;
  71. /** 动画开关,默认开启。 */
  72. animate?: boolean;
  73. /** 动画参数配置。 */
  74. animateOption?: {
  75. /** 初入场动画配置 */
  76. appear?: {
  77. /** 动画执行时间 */
  78. duration?: number;
  79. /** 动画缓动函数 */
  80. easing?: string;
  81. /** 动画延迟时间 */
  82. delay?: number;
  83. };
  84. /** 更新动画配置 */
  85. update?: {
  86. /** 动画执行时间 */
  87. duration?: number;
  88. /** 动画缓动函数 */
  89. easing?: string;
  90. /** 动画延迟时间 */
  91. delay?: number;
  92. };
  93. /** 更新后新入场的动画配置 */
  94. enter?: {
  95. /** 动画执行时间 */
  96. duration?: number;
  97. /** 动画缓动函数 */
  98. easing?: string;
  99. /** 动画延迟时间 */
  100. delay?: number;
  101. };
  102. /** 离场动画配置 */
  103. leave?: {
  104. /** 动画执行时间 */
  105. duration?: number;
  106. /** 动画缓动函数 */
  107. easing?: string;
  108. /** 动画延迟时间 */
  109. delay?: number;
  110. };
  111. };
  112. /** 标记坐标轴 label 的方向,左侧为 1,右侧为 -1。 */
  113. verticalFactor?: number;
  114. /**
  115. * 配置坐标轴垂直方向的最大限制长度,对文本自适应有很大影响。
  116. * 1. 可以直接设置像素值,如 100;
  117. * 2. 也可设置绝对值,如 0.2,如果是 x 轴,则相对于图表的高度,如果是 y 轴,则相对于图表的宽度
  118. *
  119. * 在 G2 中,x 轴的文本默认最大高度为图表高度的 1/2,y 轴的文本默认最大长度为图表宽度的 1/3
  120. */
  121. verticalLimitLength?: number;
  122. }

返回值: View

annotation

annotation().(cfg)
辅助标记配置。

  1. view.annotation().line({
  2. start: ['min', 85],
  3. end: ['max', 85],
  4. style: {
  5. stroke: '#595959',
  6. lineWidth: 1,
  7. lineDash: [3, 3],
  8. },
  9. });

cfg 是一个对象,根据不同的 Annotation 类型对应不同的配置属性。

通用配置

animate? : boolean

是否进行动画。

animateOption? : object

动画参数配置,当且仅当 animate 属性为 true,即动画开启时生效。是一个对象,支持的属性如下:

  1. {
  2. /** 初入场动画配置 */
  3. appear?: {
  4. /** 动画执行时间 */
  5. duration?: number;
  6. /** 动画缓动函数 */
  7. easing?: string;
  8. /** 动画延迟时间 */
  9. delay?: number;
  10. };
  11. /** 更新动画配置 */
  12. update?: {
  13. /** 动画执行时间 */
  14. duration?: number;
  15. /** 动画缓动函数 */
  16. easing?: string;
  17. /** 动画延迟时间 */
  18. delay?: number;
  19. };
  20. /** 更新后新入场的动画配置 */
  21. enter?: {
  22. /** 动画执行时间 */
  23. duration?: number;
  24. /** 动画缓动函数 */
  25. easing?: string;
  26. /** 动画延迟时间 */
  27. delay?: number;
  28. };
  29. /** 离场动画配置 */
  30. leave?: {
  31. /** 动画执行时间 */
  32. duration?: number;
  33. /** 动画缓动函数 */
  34. easing?: string;
  35. /** 动画延迟时间 */
  36. delay?: number;
  37. };
  38. }

offsetX? : number

x 方向的偏移量。

offsetY? : number

y 方向的偏移量。

style? : object

图形样式属性。

top? : boolean

指定 annotation 是否绘制在 canvas 最上层,默认为 false, 即绘制在最下层。

位置属性配置

Annotation 为位置定位支持三种类型配置:

  1. object: 使用图表 x, y 对应的原始数据例如: { time: ‘2010-01-01’, value: 200 }
  2. array: 数组来配置位置 [ x, y ],根据数组中的值的存在以下几种形式:
    a. 对应数据源中的原始数据;
    b. 关键字:’min’、’max’、’median’、’start’、’end’ 分别代表数据的最大值、最小值、中间值以及坐标系区间的起始和结束;
    c. x, y 都是百分比的形式,如 30%,在绘图区域定位(即坐标系内)

说明 a 和 b 两种类型的数据可以混用,但是使用百分比形式时 x 和 y 必须都是百分比形式。

  1. function: 回调函数,可以动态得确定辅助元素的位置,应用于数据动态更新,辅助元素的位置根据数据变化的场景
  1. chart.annotation().line({
  2. start(xScales, yScales) {
  3. return []; // 位置信息
  4. }
  5. });

annotation().line()

绘制辅助线。

说明: 以下只列出 Line 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().line({
  2. /** 起始位置,详见位置属性配置 */
  3. start: AnnotationPosition,
  4. /** 结束位置,详见位置属性配置 */
  5. end: AnnotationPosition,
  6. /** 文本配置定义 */
  7. text?: {
  8. /**
  9. * 文本位置,除了制定 'start', 'center' 和 'end' 外,还可以使用百分比进行定位, 比如 '30%'。
  10. */
  11. position: 'start' | 'center' | 'end' | string,
  12. /** 是否自动旋转 */
  13. autoRotate?: boolean,
  14. /** 显示的文本内容 */
  15. content: string,
  16. /** 文本的图形样式属性 */
  17. style?: object,
  18. /** x 方向的偏移量 */
  19. offsetX?: number,
  20. /** y 方向偏移量 */
  21. offsetY?: number,
  22. };
  23. });

annotation().text()

绘制辅助文本。

说明: 以下只列出 Text 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().text({
  2. /** Point 定位位置,详见位置属性配置 */
  3. position: AnnotationPosition,
  4. /** 显示的文本内容 */
  5. content: string | number,
  6. /** 文本的旋转角度,弧度制 */
  7. rotate?: number,
  8. });

annotation().arc()

绘制辅助弧线,只适用于极坐标

说明: 以下只列出 Arc 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().arc({
  2. /** 起始位置,详见位置属性配置*/
  3. start: AnnotationPosition,
  4. /** 结束位置,详见位置属性配置 */
  5. end: AnnotationPosition,
  6. });

annotation().image()

绘制辅助图片。

说明: 以下只列出 Image 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().image({
  2. /** 图片路径 */
  3. src: string,
  4. });

annotation().region()

绘制辅助区域。

说明: 以下只列出 Region 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().region({
  2. /** 起始位置,详见位置属性配置*/
  3. start: AnnotationPosition,
  4. /** 结束位置,详见位置属性配置 */
  5. end: AnnotationPosition,
  6. });

annotation().dataMarker()

绘制辅助数据标注。

说明: 以下只列出 DataMarker 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().dataMarker({
  2. /** Point 定位位置,详见位置属性配置 */
  3. position: AnnotationPosition,
  4. /** point 设置 */
  5. point?: null | {
  6. style?: object // 样式
  7. },
  8. /** line 设置 */
  9. line?: null | {
  10. style?: object, // 样式
  11. length?: number // 长度
  12. },
  13. /** text 设置 */
  14. text: null | {
  15. style?: object, // 样式
  16. content: string // 文本内容
  17. },
  18. /** 文本超出绘制区域时,是否自动调节文本方向,默认为 true */
  19. autoAdjust?: boolean,
  20. /** 朝向,默认为 upward,可选值为 'upward' 或者 'downward' */
  21. direction?: 'upward' | 'downward',
  22. });

annotation().dataRegion()

绘制辅助数据标注区间。

说明: 以下只列出 DataRegion 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().dataRegion({
  2. /** 起始位置,详见位置属性配置*/
  3. start: AnnotationPosition,
  4. /** 结束位置,详见位置属性配置 */
  5. end: AnnotationPosition,
  6. /** line长度,default为 0 */
  7. lineLength?: number,
  8. /** 标注区间的配置 */
  9. region?: null | {
  10. style?: object // 文本样式
  11. },
  12. /** 文本的配置 */
  13. text?: null | {
  14. style?: object, // 文本样式
  15. content: string // 文本内容
  16. },
  17. });

annotation().regionFilter()

绘制过滤区间。

说明: 以下只列出 RegionFilter 类型特有的配置项,其余通用配置项见上述。

  1. chart.annotation().regionFilter({
  2. /** 起始位置,详见位置属性配置*/
  3. start: AnnotationPosition,
  4. /** 结束位置,详见位置属性配置 */
  5. end: AnnotationPosition,
  6. /** 染色色值 */
  7. color: string;
  8. /* 可选,设定regionFilter只对特定geom类型起作用,如 `apply:['area']` */
  9. apply?: string[];
  10. });

guide

chart.annotation() 方法的别名。

legend

legend(cfg): View

对图例进行整体配置。

  1. view.legend(false); // 关闭图例
  2. view.legend({
  3. position: 'right',
  4. }); // 图例进行整体配置

参数:

属性名 说明 类型
cfg 图例的开关或者详细配置 boolean | object

cfg 是对象类型时,用于对图例进行统一配置(因为 G2 中图表可包含多个图例),cfg 作为对象包含的配置属性如下:

animate? : boolean

动画开关,默认关闭。

animateOption? : object

动画参数配置,当且仅当 animate 属性为 true,即动画开启时生效。是一个对象,支持的属性如下:

  1. {
  2. /** 初入场动画配置 */
  3. appear?: {
  4. /** 动画执行时间 */
  5. duration?: number;
  6. /** 动画缓动函数 */
  7. easing?: string;
  8. /** 动画延迟时间 */
  9. delay?: number;
  10. };
  11. /** 更新动画配置 */
  12. update?: {
  13. /** 动画执行时间 */
  14. duration?: number;
  15. /** 动画缓动函数 */
  16. easing?: string;
  17. /** 动画延迟时间 */
  18. delay?: number;
  19. };
  20. /** 更新后新入场的动画配置 */
  21. enter?: {
  22. /** 动画执行时间 */
  23. duration?: number;
  24. /** 动画缓动函数 */
  25. easing?: string;
  26. /** 动画延迟时间 */
  27. delay?: number;
  28. };
  29. /** 离场动画配置 */
  30. leave?: {
  31. /** 动画执行时间 */
  32. duration?: number;
  33. /** 动画缓动函数 */
  34. easing?: string;
  35. /** 动画延迟时间 */
  36. delay?: number;
  37. };
  38. }

background? : object

背景框配置项。

属性结构如下:

  1. {
  2. padding?: number | number[]; // 背景的留白
  3. style?: ShapeAttrs; // 背景样式配置项
  4. }

custom? : boolean

是否为自定义图例,当该属性为 true 时,需要声明 items 属性。

flipPage? : boolean

适用于分类图例,当图例项过多时是否进行分页。

handler? : object

连续图例适用,滑块的配置项。
属性结构如下:

  1. {
  2. size?: number; // 滑块的大小
  3. style?: ShapeAttrs; // 滑块的样式设置
  4. }

itemHeight? : number

分类图例适用,图例的高度,默认为 null。

itemName? : object

分类图例适用,图例项 name 文本的配置。属性结构如下:

  1. {
  2. spacing?: number; // 图例项 name 同后面 value 的间距
  3. formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数
  4. style?: ShapeAttrs; // 文本配置项
  5. }

itemSpacing? : number

分类图例适用,控制图例项水平方向的间距。

itemValue? : object

分类图例适用,图例项 value 附加值的配置项。属性结构如下:

  1. {
  2. alignRight?: boolean; // 是否右对齐,默认为 false,仅当设置图例项宽度时生效
  3. formatter?: (text: string, item: ListItem, index: number) => any; // 格式化文本函数
  4. style?: ShapeAttrs; // 图例项附加值的配置
  5. }

itemWidth? : number

分类图例适用,图例项的宽度, 默认为 null,自动计算。

items? : object[]

分类图例适用,用户自己配置图例项的内容。每一项 item 是一个对象,需要包含如下属性:

  1. {
  2. /**
  3. * 唯一值,用于动画或者查找
  4. */
  5. id?: string;
  6. /** 名称 */
  7. name: string;
  8. /** 值 */
  9. value: any;
  10. /** 图形标记 */
  11. marker?: {
  12. /**
  13. * 图例项 marker 同后面 name 的间距
  14. */
  15. spacing?: number;
  16. /**
  17. * 图例 marker 形状
  18. */
  19. symbol?: string | ((x: number, y: number, r: number) => any);
  20. /**
  21. * 图例项 marker 的配置项
  22. */
  23. style?: ShapeAttrs;
  24. /** 配置图例 marker 的 symbol 形状。 */
  25. symbol?: 'circle'
  26. | 'square'
  27. | 'diamond'
  28. | 'triangle'
  29. | 'triangleDown'
  30. | 'hexagon'
  31. | 'bowtie'
  32. | 'cross'
  33. | 'tick'
  34. | 'plus'
  35. | 'hyphen'
  36. | 'line' | (x: number, y: number, r: number) => PathCommand;;
  37. };
  38. }

label? : object

连续图例适用,文本的配置项。属性结构如下:

  1. {
  2. // 文本同滑轨的对齐方式,有五种类型
  3. // rail : 同滑轨对齐,在滑轨的两端
  4. // top, bottom: 图例水平布局时有效
  5. // left, right: 图例垂直布局时有效
  6. align?: string;
  7. spacing?: number; // 文本同滑轨的距离
  8. style?: ShapeAttrs; // 文本样式
  9. }

layout? : “horizontal” | “vertical”

布局方式: horizontal,vertical

marker? : object

分类图例适用,图例项的 marker 图标的配置。属性结构如下:

  1. {
  2. /**
  3. * 图例项 marker 同后面 name 的间距
  4. */
  5. spacing?: number;
  6. /**
  7. * 图例 marker 形状
  8. */
  9. symbol?: string | ((x: number, y: number, r: number) => any);
  10. /**
  11. * 图例项 marker 的配置项
  12. */
  13. style?: ShapeAttrs;
  14. /** 配置图例 marker 的 symbol 形状。 */
  15. symbol?: 'circle'
  16. | 'square'
  17. | 'diamond'
  18. | 'triangle'
  19. | 'triangleDown'
  20. | 'hexagon'
  21. | 'bowtie'
  22. | 'cross'
  23. | 'tick'
  24. | 'plus'
  25. | 'hyphen'
  26. | 'line' | (x: number, y: number, r: number) => PathCommand;;
  27. }

max? : number

连续图例适用,选择范围的最大值。

maxHeight? : number

分类图例适用,图例项最大高度设置。

maxWidth? : number

分类图例适用,图例项最大宽度设置。

min? : number

连续图例适用,选择范围的最小值。

offsetX? : number

图例 x 方向的偏移。

offsetY? : number

图例 y 方向的偏移。

position? : “top” | “top-left” | “top-right” | “right” | “right-top” | “right-bottom” | “left” | “left-top” | “left-bottom” | “bottom” | “bottom-left” | “bottom-right”

图例的位置。

rail? : object

连续图例适用,图例滑轨(背景)的样式配置项。属性结构如下:

  1. {
  2. type?: string; // rail 的类型,color, size
  3. size?: number; // 滑轨的宽度
  4. defaultLength?: number; // 滑轨的默认长度,,当限制了 maxWidth,maxHeight 时,不会使用这个属性会自动计算长度
  5. style?: ShapeAttrs; // 滑轨的样式
  6. }

reversed? : boolean

分类图例适用,是否将图例项逆序展示。

slidable? : boolean

连续图例适用,滑块是否可以滑动。

title? : object

图例标题配置,默认不展示。属性结构如下:

  1. {
  2. spacing?: number; // 标题同图例项的间距
  3. style?: ShapeAttrs; // 文本样式配置项
  4. }

track? : object

连续图例适用,选择范围的色块样式配置项。属性结构如下:

  1. {
  2. style?: ShapeAttrs; // 选定范围的样式
  3. }

value? : number[]

连续图例适用,选择的值。


legend(field: string, legendOption): View

field 字段对应的图例进行配置。

example

  1. view.legend('city', false); // 关闭某个图例,通过数据字段名进行关联
  2. // 对特定的图例进行配置
  3. view.legend('city', {
  4. position: 'right',
  5. });

参数:

属性名 说明 类型
field 图例对应的数据字段名称 string
legendOption 图例配置,详细的配置已在 legend(cfg) 中说明,此处不赘述 object

scale

scale(cfg): View

批量设置 scale 配置。

  1. view.scale({
  2. sale: {
  3. min: 0,
  4. max: 100,
  5. }
  6. });

参数:

属性名 说明 类型
cfg 是一个对象,以数据字段名为 key object

cfg 是一个对象,可支持的属性如下:

type? : string

声明度量类型:’linear’ | ‘cat’ | ‘category’ | ‘identity’ | ‘log’ | ‘pow’ | ‘time’ | ‘timeCat’ | ‘quantize’ | ‘quantile’。

key? : boolean

用于声明使用数据记录中的哪些字段来组成一条数据的唯一 id(如有多个字段,则使用 ‘-‘ 连接)。
数据 id 用于标识 Element 图形元素,应用于 Geometry 中的图形元素 Element 更新。
默认 G2 内部会有一套 ID 生成规则,如果不能满足用户需求,用户既可以使用该属性配置 id。

example

下面的例子中,声明了将 ‘x’ 和 ‘y’ 字段的数值来作为每条数据记录的 id,即下面数据两条数据的 id 分别为:’1-23’ 和 ‘2-2’。

  1. const data = [
  2. { x: 1, y: 23, z: 'a' },
  3. { x: 2, y: 2, z: 'b' },
  4. ];
  5. chart.scale({
  6. x: { key: true },
  7. y: { key: true },
  8. });

showLast? : boolean

只对 type: ‘time’ 的 scale 生效,强制显示最后的日期 tick。

sync? : boolean | string

同步 scale。

example

  1. chart.scale({
  2. x: { sync: true },
  3. y: { sync: true },
  4. x1: { sync: 'x1' },
  5. x2: { sync: 'x1' },
  6. });

通过以上配置,我们会分别对 x 和 y 两个字段,x1 和 x2 两个字段进行同步度量操作。

field? : string

对应的字段属性名。

values? : any[]

输入域、定义域。

min? : any

定义域的最小值,d3为domain,ggplot2为limits,分类型下无效。

max? : any

定义域的最大值,分类型下无效。

minLimit? : any

严格模式下的定义域最小值,设置后会强制 ticks 从最小值开始。

maxLimit? : any

严格模式下的定义域最大值,设置后会强制 ticks 已最大值结束。

alias? : string

数据字段的显示别名,scale内部不感知,外部注入。

range? : [number, number]

输出域、值域,默认值为[0, 1]。

base? : number

Log有效,底数。

exponent? : number

Pow有效,指数。

nice? : boolean

自动调整min、max 。

ticks? : any[]

用于指定tick,优先级最高。

tickInterval? : number

tick间隔,只对分类型和时间型适用,优先级高于tickCount。

minTickInterval? : number

tick最小间隔,只对线型适用。

tickCount? : number

tick个数,默认值为5。

maxTickCount? : number

ticks最大值,默认值为10。

formatter? : (v: any, k?: number) => any;

tick格式化函数,会影响数据在坐标轴 axis、图例 legend、tooltip 上的显示。

tickMethod? : string | TickMethod

计算 ticks 的算法。

mask? : string

时间度量 time, timeCat 时有效。

说明:不同类型的 Scale 支持的配置不同,详见 Scale

返回值: View


scale(field: string, scaleOption): View

field 对应的数据字段进行 scale 配置。

  1. view.scale('sale', {
  2. min: 0,
  3. max: 100,
  4. });

参数:

属性名 说明 类型
field 数据字段名 string
scaleOption scale 配置,同 scale(cfg) 中的配置属性,此处不再赘述 object

tooltip

tooltip(cfg): View

tooltip 提示信息配置。

  1. view.tooltip(false); // 关闭 tooltip
  2. view.tooltip({
  3. shared: true
  4. });

参数:

属性名 说明 类型
cfg Tooltip 配置 boolean | object

cfg 是一个对象,可配置的属性如下:

container? : string | HTMLElement

自定义 tooltip 的容器。

containerTpl? : string

用于指定图例容器的模板,自定义模板时必须包含各个 dom 节点的 class。

crosshairs? : object

配置 tooltip 的 crosshairs,当且仅当 showCrosshairs 为 true 时生效。是一个对象,可配置属性如下:

属性名 说明 类型
follow 辅助线是否跟随鼠标移动,默认为 false,即定位到数据点 boolean
line 辅助线的样式配置。属性结构如下:
{
style?: ShapeAttrs; // 线的样式配置
}
object
text 辅助线文本配置,支持回调。{
autoRotate?: boolean; // 是否自动旋转
style?: ShapeAttrs; // 文本的配置项
position?: string; // 文本位置,只支持 start, end
content?: string; // 文本内容
offset?: number; // 距离线的距离
content?: string; // crosshairs 文本内容
}
或者可以是一个大的回调,回调按需返回上述配置:
(type: string, defaultContent: any, items: any[], currentPoint: Point) => TooltipCrosshairsText
object
textBackground 辅助线文本背景配置。属性结构如下:
{
padding?: number | number[]; // 文本背景周围的留白
style?: ShapeAttrs; // 文本背景的样式
}
boolean | object
type crosshairs 的类型: x 表示 x 轴上的辅助线,y 表示 y 轴上的辅助项。下表是在不同坐标系下,crosshairs 各个类型的表现。 “x” | “y” | “xy”

domStyles? : object

传入各个 dom 的样式。

  1. {
  2. 'g2-tooltip'?: LooseObject;
  3. 'g2-tooltip-title'?: LooseObject;
  4. 'g2-tooltip-list'?: LooseObject;
  5. 'g2-tooltip-list-item'?: LooseObject;
  6. 'g2-tooltip-marker'?: LooseObject;
  7. 'g2-tooltip-value'?: LooseObject;
  8. 'g2-tooltip-name'?: LooseObject;
  9. }

enterable? : boolean

tooltip 是否允许鼠标滑入,默认为 false,不允许

follow? : boolean

设置 tooltip 内容框是否跟随鼠标移动。
默认为 true,跟随鼠标移动,false 则固定位置不随鼠标移动。

itemTpl? : string

每项记录的默认模板,自定义模板时必须包含各个 dom 节点的 class。

marker? : object

tooltipMarker 的样式配置。

offset? : number

tooltip 偏移量。

position? : “top” | “bottom” | “left” | “right”

设置 tooltip 的固定展示位置,相对于数据点。

shared? : boolean

true 表示合并当前点对应的所有数据并展示,false 表示只展示离当前点最逼近的数据内容。

showContent? : boolean

是否展示 tooltip 内容框。

showCrosshairs? : boolean

是否展示 crosshairs。

showMarkers? : boolean

是否渲染 tooltipMarkers。

showTitle? : boolean

是否展示 tooltip 标题。

title? : string

设置 tooltip 的标题内容:如果值为数据字段名,则会展示数据中对应该字段的数值,如果数据中不存在该字段,则直接展示 title 值。


createView

createView(cfg): View

创建子 view。

  1. const innerView = view.createView({
  2. region: {
  3. start: { x: 0, y: 0 },
  4. end: { x: 0.5, y: 0.5 },
  5. },
  6. padding: 8,
  7. });

参数:

属性名 说明 类型
cfg 创建 View 需要的传入的配置 object

cfg 是一个对象,需要配置的属性如下:

region? : object

view 的绘制范围。

  1. {
  2. start: { x: number, y: number };
  3. end: { x: number, y: number };
  4. }

view

chart.createView() 方法别名。

facet

facetT›(type, cfg): View

view 分面绘制。

  1. view.facet('rect', {
  2. rowField: 'province',
  3. columnField: 'category',
  4. eachView: (innerView: View, facet?: FacetData) => {
  5. innerView.line().position('city*sale');
  6. },
  7. });

参数:

属性名 说明 类型
type 分面类型 ‘rect’、’mirror’、’list’、’matrix’、’circle’、’tree’
cfg 分面配置,不同类型的分面配置不同 object

矩形分面

  1. chart.facet('rect', {
  2. /** view 创建回调。 */
  3. eachView: (innerView: View, facet?: D) => any;
  4. /** facet view padding。 */
  5. padding?: number | number[];
  6. /** 是否显示标题。 */
  7. showTitle?: boolean;
  8. /** facet 数据划分维度。 */
  9. fields: string[];
  10. /** 行标题的样式。 */
  11. columnTitle?: {
  12. /** x 方向偏移。 */
  13. offsetX?: number;
  14. /** y 方向偏移。 */
  15. offsetY?: number;
  16. /** 文本样式。 */
  17. style?: object;
  18. };
  19. /** 列标题的样式。 */
  20. rowTitle?: {
  21. /** x 方向偏移。 */
  22. offsetX?: number;
  23. /** y 方向偏移。 */
  24. offsetY?: number;
  25. /** 文本样式。 */
  26. style?: object;
  27. };
  28. });

镜像分面

  1. chart.facet('mirror', {
  2. /** view 创建回调。 */
  3. eachView: (innerView: View, facet?: D) => any;
  4. /** facet view padding。 */
  5. padding?: number | number[];
  6. /** 是否显示标题。 */
  7. showTitle?: boolean;
  8. /** facet 数据划分维度。 */
  9. fields: string[];
  10. /** 是否转置。 */
  11. transpose?: boolean;
  12. /** 标题样式。 */
  13. title?:{
  14. /** x 方向偏移。 */
  15. offsetX?: number;
  16. /** y 方向偏移。 */
  17. offsetY?: number;
  18. /** 文本样式。 */
  19. style?: object;
  20. };
  21. });

list 分面

  1. chart.facet('list', {
  2. /** 指定每行可显示分面的个数,超出时会自动换行。 */
  3. cols?: number;
  4. /** 标题样式。 */
  5. title?:{
  6. /** x 方向偏移。 */
  7. offsetX?: number;
  8. /** y 方向偏移。 */
  9. offsetY?: number;
  10. /** 文本样式。 */
  11. style?: object;
  12. };
  13. /** view 创建回调。 */
  14. eachView: (innerView: View, facet?: D) => any;
  15. /** facet view padding。 */
  16. padding?: number | number[];
  17. /** 是否显示标题。 */
  18. showTitle?: boolean;
  19. /** facet 数据划分维度。 */
  20. fields: string[];
  21. });

matrix 分面

  1. chart.facet('matrix', {
  2. /** 行标题的样式。 */
  3. columnTitle?: {
  4. /** x 方向偏移。 */
  5. offsetX?: number;
  6. /** y 方向偏移。 */
  7. offsetY?: number;
  8. /** 文本样式。 */
  9. style?: object;
  10. };
  11. /** 列标题的样式。 */
  12. rowTitle?: {
  13. /** x 方向偏移。 */
  14. offsetX?: number;
  15. /** y 方向偏移。 */
  16. offsetY?: number;
  17. /** 文本样式。 */
  18. style?: object;
  19. };
  20. /** view 创建回调。 */
  21. eachView: (innerView: View, facet?: D) => any;
  22. /** facet view padding。 */
  23. padding?: number | number[];
  24. /** 是否显示标题。 */
  25. showTitle?: boolean;
  26. /** facet 数据划分维度。 */
  27. fields: string[];
  28. });

circle 分面

  1. chart.facet('circle', {
  2. /** 分面标题配置。 */
  3. title?: {
  4. /** x 方向偏移。 */
  5. offsetX?: number;
  6. /** y 方向偏移。 */
  7. offsetY?: number;
  8. /** 文本样式。 */
  9. style?: object;
  10. };
  11. /** view 创建回调。 */
  12. eachView: (innerView: View, facet?: D) => any;
  13. /** facet view padding。 */
  14. padding?: number | number[];
  15. /** 是否显示标题。 */
  16. showTitle?: boolean;
  17. /** facet 数据划分维度。 */
  18. fields: string[];
  19. });

tree 分面

  1. chart.facet('tree', {
  2. /** 分面标题配置。 */
  3. title?: {
  4. /** x 方向偏移。 */
  5. offsetX?: number;
  6. /** y 方向偏移。 */
  7. offsetY?: number;
  8. /** 文本样式。 */
  9. style?: object;
  10. };
  11. /** 边的配置 */
  12. line?: {
  13. style?: ShapeAttrs;
  14. smooth?: boolean;
  15. };
  16. /** view 创建回调。 */
  17. eachView: (innerView: View, facet?: D) => any;
  18. /** facet view padding。 */
  19. padding?: number | number[];
  20. /** 是否显示标题。 */
  21. showTitle?: boolean;
  22. /** facet 数据划分维度。 */
  23. fields: string[];
  24. });

返回值: View

interaction

interaction(name, cfg): View

  1. view.interaction('my-interaction', { extra: 'hello world' });

详细文档可以参考:https://g2.antv.vision/zh/docs/manual/tutorial/interaction

参数:

属性名 说明 类型
name 交互名称 string
cfg? 交互配置 object

返回值: View

filter

filter(field, condition): View

设置数据筛选规则。

  1. view.filter('city', (value: any, datum: Datum) => value !== '杭州');
  2. // 删除 'city' 字段对应的筛选规则。
  3. view.filter('city', null);

参数:

属性名 说明 类型
field 数据字段 string
condition 筛选规则 (value, record) => boolean;
value: 代表当前 field 字段对应的值;
record: 代表当前数据记录

返回值: View

changeData

changeData(data): Chart

修改数据,数据更新逻辑,数据更新仅仅影响当前这一层的 Chart。

  1. chart.changeData([{ city: '北京', sale: '200' }]);

参数:

属性名 说明 类型
data JSON 数组,同时结构需要同初始化加载的数据结构一致 object[]

返回值: Chart

changeSize

changeSize(width, height): Chart

改变图表大小,同时重新渲染。

参数:

属性名 说明 类型
width 图表宽度 number
height 图表高度 number

返回值: Chart

changeVisible

changeVisible(visible): Chart

显示或隐藏图表。

参数:

属性名 说明 类型
visible 是否可见,true 表示显示,false 表示隐藏 boolean

返回值: Chart

forceFit

forceFit(): void

自动根据容器大小 resize 画布。

返回值: void

getCanvas

getCanvas(): ICanvas

获取 G.Canvas 实例。

返回值: ICanvas G.Canvas 画布实例。

getCoordinate

getCoordinate(): Coordinate‹›

获取当前坐标系实例。

返回值: Coordinate‹›

getLayer

getLayer(layer): IGroup

获得绘制的层级 group。

参数:

属性名 说明 类型
layer 层级名称 “bg” | “fore” | “mid”

返回值: IGroup 对应层级的 Group。

getOptions

getOptions(): Options

返回所有配置信息。

返回值: Options 所有的 view API 配置。

getSnapRecords

getSnapRecords(point): object[]

获取逼近的点的数据集合。

参数:

属性名 说明 类型
point 当前坐标点 {x: number, y: number}

返回值: object[]

getTheme

getTheme(): object

获取当前 view 的主题配置。

返回值: object

getTooltipItems

getTooltipItems(point): object[]

获取当前 point 对应的 tooltip 数据项。

参数:

属性名 说明 类型
point 坐标点 {x: number, y: number}

返回值: object[]

getXScale

getXScale(): Scale

获得 x 轴字段的 scale 实例。

返回值: Scale

getXY

getXY(data): object

获取该数据在可视化后,对应的画布坐标点。

参数:

属性名 说明 类型
data 原始数据记录 object

返回值: object 对应的画布坐标点。

getYScales

getYScales(): Scale[]

获取 y 轴字段的 scales 实例。

返回值: Scale[]

view 中 Geometry 对于的 y scale 数组。

show

show(): void

显示图表。

hide

hide(): void

隐藏。

返回值: void

option

option(name, opt): View

view.options 属性中存储配置项。

参数:

属性名 说明 类型
name 属性名称 string
opt 属性值,不同的配置结构不同 any

返回值: View

render

render(isUpdate: boolean): void

生命周期:渲染流程,渲染过程需要处理数据更新的情况。
render 函数仅仅会处理 view 和子 view。

参数:

属性名 说明 类型
isUpdate 是否触发更新流程。默认为 false。 boolean

返回值: void

clear

clear(): void

生命周期:清空图表上所有的绘制内容,但是不销毁图表,chart 仍可使用。

返回值: void

destroy

destroy(): void

销毁图表,同时解绑事件,销毁创建的 G.Canvas 实例。

返回值: void

removeInteraction

removeInteraction(name): void

移除当前 View 的 interaction。

  1. view.removeInteraction('my-interaction');

参数:

属性名 说明 类型
name 交互名称 string

返回值: void

removeView

removeView(view): View

删除一个子 view

参数:

属性名 说明 类型
view 要删除的 View 实例 View

返回值: View

返回值: void

showTooltip

showTooltip(point): View

显示 point 坐标点对应的 tooltip。

参数:

属性名 说明 类型
point 画布坐标点 {x: number, y: number}

返回值: View

hideTooltip

hideTooltip(): View

隐藏 tooltip。

返回值: View

theme

theme(theme): View

设置主题。

  1. view.theme('dark'); // 'dark' 需要事先通过 `registerTheme()` 接口注册完成
  2. view.theme({ defaultColor: 'red' });

参数:

属性名 说明 类型
theme 主题名或者主题配置 string | object

返回值: View

isTooltipLocked

isTooltipLocked(): boolean

是否锁定 tooltip。

返回值: boolean

lockTooltip

lockTooltip(): View

将 tooltip 锁定到当前位置不能移动。

返回值: View

unlockTooltip

unlockTooltip(): View

将 tooltip 锁定解除。

返回值: View

updateOptions

updateOptions(options): View

更新配置项,用于配置项式声明。

参数:

属性名 说明 类型
options 配置项 Options

返回值: View

interval

interval( cfg): Interval

创建 Interval 几何标记。
**

line

line(cfg): Line

创建 Line 几何标记。

path

path(cfg): Path

创建 Path 几何标记。

point

point(cfg: Point

创建 Point 几何标记。

polygon

polygon(cfg): Polygon

创建 Polygon 几何标记。

schema

schema(cfg): Schema

创建 Schema 几何标记。

area

area(cfg): Area

创建 Area 几何标记。**

edge

edge(cfg): Edge

创建 Edge 几何标记。**

heatmap

heatmap(cfg): Heatmap

创建 Heatmap 几何标记。
**