视图,由 Chart 生成和管理,拥有自己独立的数据源、坐标系和图层,用于异构数据的可视化以及图表组合,一个 Chart 由一个或者多个视图 View 组成。

下面是创建视图的语法,首先你需要创建一个 chart 对象,然后调用 chart.createView(cfg) 方法生成:

  1. var view = chart.createView({
  2. id: String, // 视图的 id 标识符,如果用户不指定,G2 会默认提供一套 id 生成机制('view' + views.length,如 view0, view1, ..., viewN)
  3. start: {
  4. x: 0,
  5. y: 0
  6. }, // 视图绘图区域的起始点,x、y 数值在 0 - 1 范围内
  7. end: {
  8. x: 1,
  9. y: 1
  10. } // 视图绘图区域的结束点,x、y 数值在 0 - 1 范围内
  11. });

chart.createView(cfg) 方法中的参数 cfg 可以为空或者传入以下属性:

  1. {
  2. start: null, // 绘制区域的起始坐标,默认值为 {x: 0, y: 0}
  3. end: null, // 绘制区域的终点坐标,默认值为 {x: 1, y: 1}
  4. id: '', // 每个 view 的 id 标识,默认值为 'view0'
  5. data: null, // 源数据,标准的 JSON 数组
  6. animate: Boolean // 同 chart 配置保持一致
  7. }
  • start: Object

绘制区域的起始坐标,结构如下:

  1. {
  2. x: 0, // x 取值范围为 0 -1
  3. y: 0 // y 取值范围为 0 -1
  4. }

对于 view,我们的起始点是从左上角开始的。

  • end: Object

绘制区域的终点坐标,结构如下:

  1. {
  2. x: 0, // x 取值范围为 0 -1
  3. y: 0 // y 取值范围为 0 -1
  4. }
  • id: String

视图的 id 标识,用于唯一标定视图,如果用户不指定,G2 会默认提供一套 id 生成机制('view' + views.length,如 view0, view1, …, viewN)。

  • data: Array

视图的数据源,同时也可以使用 view.source(data) 方法设置数据源。

  • animate: Boolean

视图是否执行动画,默认执行。

注意:从 2.2.2 版本开始,chart 下创建的 view将默认使用列定义坐标轴 axis 配置坐标系 coord 配置,即如果 view 不自己定义则默认同 chart 的配置相同;(所以这里对于地理投影坐标来说,直接在 chart 上声明坐标系就可以全部统一了),如果 view 自己定义了相应的配置,则以自己的为准。

如下实例所示:

  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. width: 600,
  11. height: 300
  12. });
  13. chart.source(data, {
  14. genre: {
  15. alias: '游戏种类'
  16. },
  17. sold: {
  18. alias: '销售量',
  19. min: 0
  20. }
  21. });
  22. chart.coord('polar', {
  23. inner: 0.75
  24. });
  25. chart.axis('genre', {
  26. labels: {
  27. label: {
  28. fill: '#f80',
  29. fontWeight: 'bold'
  30. }
  31. }
  32. });
  33. chart.interval().position('genre*sold').color('genre');
  34. var view = chart.createView({
  35. start: {
  36. x: 0.25,
  37. y: 0.25
  38. },
  39. end: {
  40. x: 0.75,
  41. y: 0.75
  42. }
  43. });
  44. view.source(data); // 默认使用 chart 的列定义
  45. view.coord('polar', {
  46. inner: 0
  47. }); // 覆盖了 chart 的 coord 配置
  48. view.axis('sold', false); // 对于 genre 对应的坐标轴配置会默认使用 chart 的坐标轴配置
  49. view.interval().position('genre*sold')
  50. .color('genre', ['#61A5E8', '#7ECF51', '#EECB5F', '#E4925D', '#E16757']);
  51. chart.render();

属性

以下属性可以通过 view.get('AttrName') 获取。

start

类型:Object

绘制区域的起始坐标,结构如下:

  1. {
  2. x: 0, // x 取值范围为 0 -1
  3. y: 0 // y 取值范围为 0 -1
  4. }

end

类型:Object

绘制区域的终点坐标,结构如下:

  1. {
  2. x: 1, // x 取值范围为 0 -1
  3. y: 1 // y 取值范围为 0 -1
  4. }

id

类型:String

视图的 id 标识,用于唯一标定视图,如果用户不指定,G2 会默认提供一套 id 生成机制('view' + views.length,如 view0, view1, …, viewN)。

data

类型:Array

视图的数据源,标准 JSON 数组。

parent

类型:Chart

该视图所属的 Chart 对象。

geoms

类型:Array

该视图所绘制的所有的几何标记对象。

coord

类型:Coord

该视图的坐标系对象。

scales

类型:Object

该视图 实例的所有 scale 度量对象。

options

类型:Object

返回生成 view 实例相关的所有配置项,详见 配置项支持

animate

类型:Boolean

视图是否执行动画,默认执行。

方法

source

方法名:view.source(data[, colDefs, namesArr])

说明:使用方法同 Chart,详见 ->

col

方法名:view.col(dim, cfg)

说明:使用方法同 Chart,详见 ->

axis

方法名:view.axis(dim, cfg)

说明:使用方法同 Chart,详见 ->

coord

方法名:view.coord(type[, cfg])

说明:使用方法同 Chart,详见 ->

tooltip

方法名:view.tooltip(enable)

说明:是否展示该视图的提示信息。

参数

  • enable: Boolean

开关,是否展示该视图的提示信息,默认展示,调用 view.tooltip(false) 即可关闭。

guide

方法名:view.guide().<guideType>()

说明:使用方法同 Chart,详见 ->

filter

方法名:view.filter(dim, remained)

说明:使用方法同 Chart,详见 ->

clear

方法名:view.clear()

说明:使用方法同 Chart,详见 ->

repaint

方法名:view.repaint()

说明:使用方法同 Chart,详见 ->

changeData

方法名:view.changeData(data)

说明:使用方法同 Chart,详见 ->

getGeoms

方法名:view.getGeoms()

说明:获取该视图中所有的几何标记对象,返回的结果是一个数据 Array。

getScale

方法名:view.getScale(dim)

说明:使用方法同 Chart,详见 ->

getYScales

方法名:view.getYScales()

说明:获取该视图整体 y 轴对应的 scale, 如果有多个则是数组。

getXScale

方法名:view.getXScale()

说明:获取视图 x 轴对应的 scale。

getPosition

方法名:view.getPosition({xDim: value, yDim: value})

说明:使用方法同 Chart,详见 ->

DEMO

名称示例
散点矩阵View - 图1
分级统计图View - 图2
美国各个机场航线图View - 图3