G2 从 2.3.0 版本开始支持图形语法的配置项式声明方式。

Chart 对象新增 options 属性,用于支持配置项式声明。

  1. var chart = new G2.Chart({
  2. width: 1000,
  3. height: 500,
  4. data: data,
  5. plotCfg: {
  6. margin: [20, 80, 60, 80]
  7. },
  8. options: {
  9. // 在这里声明所有的配置属性
  10. }
  11. });
  12. chart.render();

可以先通过以下几个例子来了解下:

  • 实例 1:柱状图
  1. var data = [
  2. {genre: 'Sports', sold: 275},
  3. {genre: 'Strategy', sold: 115},
  4. {genre: 'Action', sold: 120},
  5. {genre: 'Shooter', sold: 350},
  6. {genre: 'Other', sold: 150},
  7. ];
  8. var chart = new G2.Chart({
  9. id: 'c1',
  10. forceFit: true,
  11. height: 300,
  12. data: data,
  13. options: {
  14. scales: {
  15. 'genre': {
  16. alias: '游戏种类'
  17. },
  18. 'sold': {
  19. alias: '销售量'
  20. }
  21. },
  22. geoms: [
  23. {
  24. type: 'interval',
  25. position: 'genre*sold',
  26. color: 'genre'
  27. }
  28. ]
  29. }
  30. });
  31. chart.render();

对应函数式调用代码如下:

  1. var chart = new G2.Chart({
  2. id: 'c1',
  3. height : 300,
  4. forceFit: true,
  5. });
  6. chart.source(data, {
  7. genre: {
  8. alias: '游戏种类'
  9. },
  10. sold: {
  11. alias: '销售量'
  12. }
  13. });
  14. chart.interval().position('genre*sold').color('genre')
  15. chart.render();
  • 实例 2: 散点图
  1. $.getJSON('../../static/data/scatter.json', function(data){
  2. var frame = new G2.Frame(data);
  3. var hAvg = G2.Frame.mean(frame,'height'); // 计算体重的均值
  4. var wAvg = G2.Frame.mean(frame,'weight'); // 计算身高均值
  5. var lineCfg = { // 线的配置信息
  6. stroke: '#94E08A'
  7. };
  8. var chart = new G2.Chart({
  9. id: 'c2',
  10. forceFit: true,
  11. height: 450,
  12. data: data,
  13. options: {
  14. scales: {
  15. weight: {
  16. alias: '体重(kg)'
  17. },
  18. height: {
  19. alias: '身高(cm)'
  20. }
  21. }, // 列定义
  22. tooltip: {
  23. title: null,
  24. crosshairs: {
  25. type: 'cross'
  26. }
  27. },
  28. axes: {
  29. 'height': {
  30. formatter: function(val) {
  31. return val + ' cm';
  32. }
  33. }
  34. },
  35. guides: [
  36. {
  37. type: 'tag',
  38. from: [hAvg, 'min'],
  39. to: [hAvg, 'max'],
  40. text: '身高平均值: ' + hAvg.toFixed(2),
  41. cfg: {
  42. line:lineCfg
  43. }
  44. },
  45. {
  46. type: 'tag',
  47. from: ['min', wAvg],
  48. to: ['max', wAvg],
  49. text: '体重平均值: ' + wAvg.toFixed(2),
  50. cfg: {
  51. line:lineCfg
  52. }
  53. },
  54. ],
  55. geoms: [
  56. {
  57. type: 'point',
  58. position: 'height*weight',
  59. color: {
  60. field: 'gender',
  61. colors: ['rgba(223, 83, 83, 0.7)', 'rgba(119, 152, 191, 0.7)']
  62. },
  63. shape: {
  64. field: 'gender',
  65. shapes: ['circle', 'diamond']
  66. },
  67. size: 6,
  68. tooltip: 'gender*height*weight'
  69. }
  70. ]
  71. }
  72. });
  73. chart.render();
  74. });

对应函数式调用代码如下:

  1. var chart = new G2.Chart({
  2. id: 'c2',
  3. forceFit: true,
  4. height: 450
  5. });
  6. chart.source(data, {
  7. weight: {
  8. alias: '体重(kg)'
  9. },
  10. height: {
  11. alias: '身高(cm)'
  12. }
  13. });
  14. chart.tooltip({
  15. title: null,
  16. crosshairs: {
  17. type: 'cross'
  18. }
  19. });
  20. chart.point().position('height*weight').color('gender', ['rgba(223, 83, 83, 0.7)', 'rgba(119, 152, 191, 0.7)']).shape('gender', ['circle', 'diamond']).size(6).tooltip('gender*height*weight');
  21. chart.guide().tag([hAvg, 'min'], [hAvg, 'max'], '身高平均值: ' + hAvg.toFixed(2), {line:lineCfg});
  22. chart.guide().tag(['min', wAvg], ['max', wAvg], '体重平均值: ' + wAvg.toFixed(2), {line:lineCfg});
  23. chart.render();
  • 实例 3:多 views
  1. $.getJSON('../../static/data/world.geo.json', function(mapData) {
  2. var userData = [
  3. {name: 'Russia',value: 86.8},
  4. {name: 'China',value: 106.3},
  5. {name: 'Japan',value: 94.7},
  6. {name: 'Mongolia',value: 98},
  7. {name: 'Canada',value: 98.4},
  8. {name: 'United Kingdom',value: 97.2},
  9. {name: 'United States of America',value: 98.3},
  10. {name: 'Brazil',value: 96.7},
  11. {name: 'Argentina',value: 95.8},
  12. {name: 'Algeria',value: 101.3},
  13. {name: 'France',value: 94.8},
  14. {name: 'Germany',value: 96.6},
  15. {name: 'Ukraine',value: 86.3},
  16. {name: 'Egypt',value: 102.1},
  17. {name: 'South Africa',value: 101.3},
  18. {name: 'India',value: 107.6},
  19. {name: 'Australia',value: 99.9},
  20. {name: 'Saudi Arabia',value:130.1},
  21. {name: 'Afghanistan',value: 106.5},
  22. {name: 'Kazakhstan',value:93.4},
  23. {name: 'Indonesia',value: 101.4}
  24. ];
  25. var Frame = G2.Frame;
  26. var Stat = G2.Stat;
  27. var frame = new Frame(userData);
  28. frame.addCol('trend', function(obj) {
  29. return (obj.value > 100) ? 1 : 0;
  30. });
  31. var map = [];
  32. var features = mapData.features;
  33. for(var i=0; i<features.length; i++) {
  34. var name = features[i].properties.name;
  35. map.push({
  36. "name": name
  37. });
  38. }
  39. var chart = new G2.Chart({
  40. id: 'c3',
  41. forceFit: true,
  42. height: 450,
  43. syncXYScales: true, // 统一视图的度量
  44. plotCfg: {
  45. margin: [55, 20]
  46. },
  47. data: map,
  48. options: {
  49. tooltip: {
  50. title: null
  51. },
  52. legends: {
  53. 'trend': {
  54. position: 'left'
  55. }
  56. }
  57. }
  58. });
  59. // 绘制世界地图背景
  60. var view = chart.createView({
  61. data: map,
  62. options: {
  63. tooltip: false,
  64. geoms: [
  65. {
  66. type: 'polygon',
  67. position: Stat.map.region('name', mapData),
  68. shape: 'stroke',
  69. style: {
  70. fill: '#fff',
  71. stroke: '#ccc',
  72. lineWidth: 1
  73. }
  74. }
  75. ]
  76. }
  77. });
  78. // 绘制展示数据
  79. var userView = chart.createView({
  80. data: frame,
  81. options: {
  82. scales: {
  83. 'trend': {
  84. type: 'cat',
  85. alias: '每100位女性对应的男性数量',
  86. values: ['女性更多', '男性更多']
  87. }
  88. },
  89. geoms: [
  90. {
  91. type: 'polygon',
  92. position: Stat.map.region('name*value', mapData),
  93. color: {
  94. field: 'trend',
  95. colors: ['#C45A5A','#14647D']
  96. },
  97. opacity: 'value',
  98. tooltip: 'name*trend'
  99. }
  100. ]
  101. }
  102. });
  103. chart.render();
  104. });

对应的函数式调用代码如下:

  1. var chart = new G2.Chart({
  2. id: 'c3',
  3. forceFit: true,
  4. height: 450,
  5. syncXYScales: true, // 统一视图的度量
  6. plotCfg: {
  7. margin: [55, 20]
  8. }
  9. });
  10. chart.tooltip({
  11. title: null
  12. });
  13. chart.legend('trend', {
  14. position: 'left'
  15. });
  16. // 绘制世界地图背景
  17. var view = chart.createView();
  18. view.source(map);
  19. view.tooltip(false);
  20. view.polygon().position(Stat.map.region('name', mapData)).shape('stroke').style({
  21. fill: '#fff',
  22. stroke: '#ccc',
  23. lineWidth: 1
  24. });
  25. // 绘制展示数据
  26. var userView = chart.createView();
  27. userView.source(frame, {
  28. 'trend': {
  29. type: 'cat',
  30. alias: '每100位女性对应的男性数量',
  31. values: ['女性更多', '男性更多']
  32. }
  33. });
  34. userView.polygon().position(Stat.map.region('name*value', mapData)).color('trend',['#C45A5A','#14647D']).opacity('value').tooltip('name*trend');
  35. chart.render();

配置项属性

  1. var options = {
  2. appendFields: {Array}, // 作为附加字段,用于补全数据源中的数据字段,常用于数据源含有不同数据字段的记录
  3. scales: {Object}, // 列定义声明
  4. coord: {Object}, // 坐标系配置
  5. axes: {Object}, // 坐标轴配置
  6. legends: {Object}, // 图例配置
  7. guides: {Array}, // 图表辅助元素配置
  8. filters: {Object}, // 数据过滤配置
  9. tooltip: {Object}, // 提示信息配置
  10. facet: {Object}, // 分面配置
  11. geoms: {Array}, // 图形语法相关配置
  12. }

appendFields

类型: Array

对应 chart.source(data[, colDefs, namesArr]) 方法中的 namesArr 参数,用于补全数据源中所有的字段属性。

scales

类型: Object

用于定义所有的列定义。对应以下 api chart.cols()chart.col()chart.source()

具体使用方式如下

  1. scales: {
  2. ${field1}: {Object}, // 为数据字段 field1 进行列定义
  3. ${field2}: {Object}, // 为数据字段 field2 进行列定义
  4. ...
  5. }

具体列定义的参数 API: Scale

代码示例,为以下数据源的 time value 两个数据字段定义对应的列定义:

  1. var data = [
  2. {"value":10,"time":"2015-03-01T16:00:00.000Z"},
  3. {"value":15,"time":"2015-03-01T16:10:00.000Z"},
  4. {"value":26,"time":"2015-03-01T16:20:00.000Z"},
  5. {"value":9,"time":"2015-03-01T16:30:00.000Z"},
  6. {"value":12,"time":"2015-03-01T16:40:00.000Z"},
  7. {"value":23,"time":"2015-03-01T16:50:00.000Z"},
  8. {"value":18,"time":"2015-03-01T17:00:00.000Z"},
  9. {"value":21,"time":"2015-03-01T17:10:00.000Z"},
  10. {"value":22,"time":"2015-03-01T17:20:00.000Z"}
  11. ];
  12. var chart = new G2.Chart({
  13. id: 'c1',
  14. forceFit: true,
  15. height: 300,
  16. data: data,
  17. options: {
  18. scales: {
  19. 'time': {
  20. type: 'time',
  21. nice: false,
  22. mask: 'HH:MM'
  23. },
  24. 'value': {
  25. formatter: function(val) {
  26. return val + ' k';
  27. }
  28. }
  29. }
  30. }
  31. });
  32. // 配置项声明同函数调用可以混合使用
  33. chart.line().position('time*value').color('red');
  34. chart.render();

coord

类型: Object

坐标系配置,函数式调用 api:chart.coord(type, cfg)

具体配置方式如下:

  1. coord: {
  2. type: {String}, // 坐标系类型声明,可取值: rect polar theta map helix gauge clock
  3. cfg: {Object}, // 对应各个 type 坐标系属性配置,同 `chart.coord(type, cfg)` 中的 cfg
  4. actions: {Array} // 声明坐标系需要进行的变换操作
  5. }

actions 属性的声明方式如下:

  1. actions: [
  2. ['transpose'],
  3. ['rotate', 90],
  4. ['scale', 1, -1],
  5. ['reflect', 'x']
  6. ]

axes

类型:Object

图表坐标轴配置,对应 chart.axis(dim, cfg) 方法。

具体使用方式:

  • 不展示坐标轴
  1. axes: {
  2. visible: false
  3. }
  • 不展示某条坐标轴
  1. axes: {
  2. ${fields}: false, // 不展示数据字段 field1 对应的坐标轴
  3. }

或者

  1. axes: {
  2. ${fields}:
  3. visible: false
  4. }, // 不展示数据字段 field1 对应的坐标轴
  5. }
  • 为各个的坐标轴进行配置
  1. axes: {
  2. ${field1}: {Object}, // 具体配置同 https://antv.alipay.com/g2/api/chart.html#axis
  3. ${field2}: {Object}, // 具体配置同 https://antv.alipay.com/g2/api/chart.html#axis
  4. // ...
  5. }

legends

类型: Object

图表图例配置,对应 chart.legend()

  • 不显示所有的图例
  1. legends: {
  2. visible: false
  3. }
  • 为默认的图例进行配置
  1. legends: {
  2. position: 'right', // 图例的显示位置,有 'top','left','right','bottom'四种位置,默认是'right'
  3. // ... 其他属性同 https://antv.alipay.com/g2/api/chart.html#chart-legend-cfg
  4. }
  • 为各个数据字段对应的图例进行配置
  1. legends: {
  2. ${field1}: {Object}, // 具体的配置属性同 https://antv.alipay.com/g2/api/chart.html#chart-legend-dim-cfg
  3. ${field2}: false // 不展示 field2 对应的图例
  4. }

guides

类型:Array

图表辅助元素定义,对应 chart.guide()

  1. [
  2. {
  3. type: 'line', // 添加辅助线
  4. from: {Array}, // 辅助线起始点,[startX, startY]
  5. to: {Array}, // 辅助线结束点,[endX, endY]
  6. cfg: {
  7. stroke: '#999', // 线的颜色
  8. lineDash: [0, 2, 2], // 虚线的设置
  9. lineWidth: 3 // 线的宽度
  10. } // {object} 配置项,与原语法相同
  11. },
  12. {
  13. type: 'image', // 添加辅助线
  14. from: {Array}, // 辅助图片起始点,[startX, startY]
  15. to: {Array}, // 辅助图片结束点,[endX, endY]
  16. cfg: {
  17. src: 'http://gtms02.alicdn.com/VXXXXaZX.png', // 图片路径
  18. width: 160, // 宽度,可以不设置,如果设置了 [endXValue, startYValue],此属性无效
  19. height复制代码: 230 // 高度,可以不设置,如果设置了 [endXValue, endYValue],此属性无效
  20. } // {object} 配置项,与原语法相同
  21. },
  22. {
  23. type: 'text',
  24. from: {Array}, // 文本起始点,[startX, startY]
  25. text: {String}, // 辅助文本内容
  26. cfg: {
  27. fill: '#666', // 文本颜色
  28. fontSize: '12', // 文本大小
  29. fontWeight: 'bold' // 文本粗细
  30. } // {object} 辅助文本的显示样式配置
  31. }, {
  32. type: 'rect',
  33. from: {Array}, // 辅助框起始点,[startX, startY]
  34. to: {Array}, // 辅助框结束点,[endX, endY]
  35. cfg: {
  36. lineWidth: 0, // 辅助框的边框宽度复制代码
  37. fill: '#f80', // 辅助框填充的颜色
  38. fillOpacity: 0.1, // 辅助框的背景透明度
  39. stroke: '#ccc' // 辅助框的边框颜色设置
  40. } // {object} 辅助框的显示样式配置
  41. }, {
  42. type: 'tag',
  43. from: {Array}, // 辅助标记起始点,[startX, startY]
  44. to: {Array}, // 辅助标记结束点,[endX, endY]
  45. text: {String}, // 辅助文本
  46. cfg: {
  47. line: {
  48. stroke: '#999',
  49. lineDash: [0, 2, 2]
  50. }, // 辅助标记中连接线的样式配置
  51. text: {
  52. fill: '#666',
  53. fontSize: '12',
  54. textAlign: 'center'
  55. }, // 辅助标记中文本的样式配置
  56. rect: {
  57. lineWidth: 0,
  58. fill: '#999',
  59. fillOpacity: 0.1
  60. } // 辅助标记中背景框的样式配置
  61. } // {object} 辅助标记的显示样式配置,[x, y]
  62. },
  63. {
  64. type: 'arc',
  65. from: {Array}, // 辅助弧线起始点,[startX, startY]
  66. to: {Array}, // 辅助弧线结束点,[endX, endY]
  67. text: {String}, // 辅助文本
  68. cfg: {
  69. stroke: '#999', // 线的颜色
  70. lineDash: [0, 2, 2], // 虚线的设置
  71. lineWidth: 3 // 线的宽度
  72. } // {object} 辅助弧线的显示样式配置
  73. },
  74. {
  75. type: 'html',
  76. from: {Array}, // html dom 元素的起始点,[startX, startY]
  77. html: {String}, // 辅助 html 的自定义内容
  78. cfg: {
  79. align: 'tr' | 'tc' | 'tl' | 'br' | 'bc' | 'bl' | 'lc' | 'rc' | 'cc', // 对齐方式
  80. offset: {Array} // 偏移坐标,[x, y]
  81. } // {object} 辅助 html 的配置项
  82. }
  83. ]

filters

类型:Object

数据过滤,对应 chart.filter(dim, remained)

  1. filters: {
  2. ${field1}: {Array}, // 对字段名为 field1 的数据进行过滤
  3. ${field2}: {Array}, // 对字段名为 field2 的数据进行过滤
  4. ...
  5. }

tooltip

类型:Object

对应 chart.tooltip

  1. tooltip: {
  2. visible: {Boolean}, // 开启关闭 tooltip 功能
  3. title: null, // 用于控制是否显示 tooltip 框内的 title
  4. map: { // 用于指定 tooltip 内显示内容同原始数据字段的映射关系复制代码
  5. title: '数据字段名或者常量', // 为数据字段名时则显示该字段名对应的数值,常量则显示常量
  6. name: '数据字段名或者常量', // 为数据字段名时则显示该字段名对应的数值,常量则显示常量复制代码
  7. value: '数据字段名' // 为数据字段名时则显示该字段名对应的数值
  8. },
  9. offset: 15, // 偏移量,设置 tooltip 显示位置距离 x 轴方向上的偏移
  10. crosshairs: true, // 是否展示 tooltip 的辅助线,默认为 false,不展示
  11. crossLine: {
  12. stroke: '#666', // 辅助线的颜色
  13. lineWidth: 2, // 辅助线的宽度
  14. lineDash: [2, 3] // 设置虚线样式
  15. }, // crosshairs 为 true 时,为辅助线设置样式
  16. padding: [10, 10, 10, 10], // 提示框内边距
  17. }

当需要使用自定义的 html 模板生成 tooltip 时,需要对 tooltip 进行如下配置:

  1. tooltip: {
  2. custom: true, // 表示使用自定义的模板显示 tooltip
  3. html: '<div class="ac-tooltip" style="position:absolute;visibility: hidden;"><h4 class="ac-title"></h4><table class="ac-list custom-table"></table></div>', // tooltip 的 html 外层模板
  4. itemTpl: '<tr><td>{index}</td><td style="color:{color}">{name}</td><td>{value}k</td></tr>', // 使用 html 时每一个显示项的模板,默认支持 index, color, name, value 这四个字段。
  5. offset: 50, // 偏移量,设置tooltip 显示位置距离 x 轴方向上的偏移
  6. customFollow: false // 设置 tooltip 是否跟随鼠标移动,默认为 true,跟随。
  7. }

facet

类型:Object

对应 chart.facet()

  1. facet: {
  2. fields: {Array}, // 用于切割分面的数据源字段,是一个数组 Array。
  3. type: 'rect' | 'list' | 'circle' | 'tree' | 'mirror', // 设置分面的布局类型
  4. margin: 10, // 各个分面之间的距离,同 CSS 盒模型中的 margin
  5. facetTitle: { // 各个分面标题的样式配置
  6. titleOffset: 16, // 标题距离内容区的偏移
  7. colDimTitle: {
  8. title: {
  9. fontSize: 14,
  10. textAlign: 'center',
  11. fill: '#999'
  12. }
  13. },
  14. colTitle: {
  15. title: {
  16. fontSize: 12,
  17. textAlign: 'center',
  18. fill: '#999'
  19. }
  20. },
  21. rowTitle: {
  22. title: {
  23. fontSize: 12,
  24. textAlign: 'center',
  25. rotate: 90,
  26. fill: '#999'
  27. }
  28. },
  29. rowDimTitle: {
  30. title: {
  31. fontSize: 12,
  32. textAlign: 'center',
  33. rotate: 90,
  34. fill: '#999'
  35. }
  36. }
  37. }
  38. }

对于不同的分面类型有以下的配置项:

  1. facet: {
  2. field: {Array}, // 用于切割分面的数据源字段,是一个数组 Array。
  3. type: 'list',
  4. cols: 2 // 每行有只展示 2 个分面,超过 2 个则自动折行
  5. }
  1. facet: {
  2. field: {Array}, // 用于切割分面的数据源字段,是一个数组 Array。
  3. type: 'circle'
  4. }
  1. facet: {
  2. field: {Array}, // 用于切割分面的数据源字段,是一个数组 Array。
  3. type: 'tree',
  4. smooth: true, // 各个树节点的连接线是否是平滑的曲线
  5. line: {
  6. stroke: 'red', // 连接边的颜色
  7. lineWidth: 1 // 连接边的粗细
  8. } // 连接各个树节点的线的配置项
  9. }
  1. facet: {
  2. field: {Array}, // 用于切割分面的数据源字段,是一个数组 Array。
  3. type: 'mirror',
  4. transpose: true // 设置镜像是否反转,默认为 false,不翻转, true 则翻转
  5. }

geoms

类型:Array

用于声明绘制图表的图形语法,可同时声明多种 geom 配置。对应函数式调用 api: Geom

  1. geoms: [
  2. {
  3. type: {String}, // 声明 geom 的类型:point line path area interval polygon schema edge heatmap contour pointStack pointJitter pointDodge intervalStack intervalDodge intervalSymmetric areaStack schemaDodge
  4. adjusts: {String} || {Array}, // 数据调整方式声明,如果只有一种调整方式,可以直接声明字符串,如果有多种混合方式,则以数组格式传入
  5. position: {String} || {Object}, // potision 图形属性配置
  6. color: {String} || {Object}, // color 图形属性配置
  7. shape: {String} || {Object}, // shape 图形属性配置
  8. size: {String} || {Object}, // size 图形属性配置
  9. opacity: {String} || {Object}, // opacity 图形属性配置
  10. label: {String} || {Object}, // 图形上文本标记的配置
  11. tooltip: {String}, // 配置 tooltip 上显示的字段名称
  12. style: {Object}, // 图形的样式属性配置
  13. selected: {Object}, // geom 选中交互配置
  14. animate: {Object} // 动画配置
  15. },
  16. {
  17. // 同上述配置相同,可以定义多个 geom
  18. }
  19. ]

positon

用于声明映射至位置 position 属性的数据字段,使用方式很简单:

  1. position: 'field1*field2'

或者

  1. position: {
  2. field: 'field1*field2'
  3. }

函数式声明 API: position

color

  • chart.geom().color(value) 对应:
  1. color: value, // value 可以是数据字段名、颜色值以及包含统计函数的声明

或者

  1. color: {
  2. field: value, // value 可以是数据字段名、颜色值以及包含统计函数的声明
  3. }
  • chart.geom().color(dim, colors) 对应:
  1. color: {
  2. field: ${field}, // 声明映射至 color 属性的数据字段名
  3. colors: ${colors} // String | Array,可声明颜色、渐变颜色等
  4. }
  • 回调函数声明 chart.geom().color(dim, colorCallback) 对应:
  1. color: {
  2. field: ${field}, // 声明映射至 color 属性的数据字段名
  3. callback: {Function} // 用户自定义回调函数
  4. }

函数式声明 API: color

shape

  • chart.geom().shape(value) 对应:
  1. shape: value, // value 可以是数据字段名、图形形状名以及包含统计函数的声明

或者

  1. shape: {
  2. field: value, // value 可以是数据字段名、图形形状名以及包含统计函数的声明
  3. }
  • chart.geom().shape(dim, shapes) 对应:
  1. shape: {
  2. field: ${field}, // 声明映射至 shape 属性的数据字段名
  3. shapes: ${shapes} // String | Array
  4. }
  • 回调函数声明 chart.geom().shape(dim, callback) 对应:
  1. shape: {
  2. field: ${field}, // 声明映射至 shape 属性的数据字段名
  3. callback: {Function} // 用户自定义回调函数
  4. }

函数式声明 API: shape

size

  • chart.geom().size(value) 对应
  1. size: value // value 可以是数据字段名、数值以及包含统计函数的声明

或者

  1. size: {
  2. field: value, // value 可以是数据字段名、图形形状名以及包含统计函数的声明
  3. }
  • chart.geom().size(dim, max, min) 对应:
  1. size: {
  2. field: {String}, // 声明映射至 size 属性的数据字段名
  3. min: {Number},
  4. max: {Number}
  5. }
  • chart.geom().size(dim, callback) 对应:
  1. size: {
  2. field: {String}, // 声明映射至 size 属性的数据字段名
  3. callback: {Function}
  4. }

函数式声明 API: size

opacity

  • chart.geom().opacity(dim) 对应:
  1. opacity: dim, // dim 对应映射至 opacity 的数据字段名、具体透明度数值或者包含统计的声明

或者

  1. opacity: {
  2. field: dim // dim 对应映射至 opacity 的数据字段名、具体透明度数值或者包含统计的声明
  3. }
  • chart.geom().opacity(dim, callback) 对应
  1. opacity: {
  2. field: {String}, // 声明映射至 opacity 属性的数据字段名
  3. callback: {Function}
  4. }

函数式声明 API: opacity

label

  • chart.geom().label(dim) 对应
  1. label: dim, // dim 对应字段名或者带有统计的声明
  • chart.geom().label(dim, cfg) 对应
  1. label: {
  2. field: {String}, // 需要标注的数据字段名
  3. cfg: {Object} // 具体的 label 配置,参见https://antv.alipay.com/g2/api/geom.html#label
  4. }
  • 如果 label 中需要声明回调函数,声明 callback 属性即可:
  1. label: {
  2. field: {String}, // 需要标注的数据字段名
  3. cfg: {Object}, // 具体的 label 配置
  4. callback: {Function}
  5. }

函数式声明 API: label

tooltip

  1. tooltip: {String} // 直接声明需要显示在 tooltip 上的字段名

函数式声明 API: tooltip

style

  1. style: {
  2. // 图形属性声明
  3. }

函数式声明 API: style

selected

  1. selected: {Boolean} // 开启关闭选中功能
  1. selected: {
  2. mode: 'multiple' || 'single' || false, // multiple 为多选,single 为单选, false 为关闭选中功能
  3. style: {
  4. // 设置选中图形的样式,不设置则使用默认提供的样式
  5. // 图形绘制属性,如 fill stroke
  6. }
  7. }

函数式声明 API: selected

animate

  1. animate: {
  2. // TODO
  3. // 同 ...
  4. }

函数式声明 API: animate

View 视图的配置项声明

视图的配置项同 chart 基本一致,除了不支持 facet,以及 tooltip 属性值为 Boolean 类型外,其他均同 chart 一致。

  1. var view = chart.createView({
  2. options: {
  3. appendFields: {Array}, // 作为附加字段,用于补全数据源中的数据字段,常用于数据源含有不同数据字段的记录
  4. scales: {Object}, // 列定义声明
  5. coord: {Object}, // 坐标系配置
  6. axes: {Object}, // 坐标轴配置
  7. legends: {Object}, // 图例配置
  8. guides: {Array}, // 图表辅助元素配置
  9. filters: {Object}, // 数据过滤配置
  10. tooltip: {Boolean}, // 默认值为 true,显示 tooltip, false 为关闭 tooltip
  11. geoms: {Array}, // 图形语法相关配置
  12. }
  13. });