语法简介
1. 描述文件
使用Vega时需要一个JSON组成的描述文件,用于描述需要绘制的图形,描述文件中包含了关于图表相关的各种属性,在自定义图表中需要完成这个文件。
描述文件基本使用思路:
- 数据(Data),作图使用的数据,可来自数据视图或外部数据
- 转换(Scales),转换数据至图形中的坐标,如定义图形宽度、高度,确定图形如何画
- 画图(Marks),将转换出来的坐标用图形绘制出来
2. 引用数据集
为方便在Vega中使用数据集结果,预置了以下变量
- 数据集:
ds0
,数据集列表的一维数组,顺序为数据集的相对位置,如ds0
为第一个数据集; - 维度和数值:当确定了某个数据集时,可使用
x0
、y0
分别引用维度和数值,x、y 均为小写,配合相应字段所在的位置,如"x0"代表引用当前数据集的第一个维度字段,注意需要半角引号。
{
"name": "xscale",
"type": "band",
"domain": {"data": "ds0", "field": "x0"},
//"domain": {"data": "ds0", "field": "y0"},
"range": "width"
}
3. Vega属性
示例结构:
{
/* //元信息,在自定义图表中可不写
"$schema": "https://vega.github.io/schema/vega/v3.0.json",
"description": "A specification outline example.",
"width": 500,
"height": 200,
"padding": 5,
"autosize": "pad",
*/
"signals": [],
"data": [],
"scales": [],
"projections": [],
"axes": [],
"legends": [],
"marks": []
}
属性列表,其中粗体属性对应上面的三个主要部分:
属性 | 说明 |
---|---|
Specification | 图表元数据信息,包含大小、边距等。除特殊图表,建议不指定,否则无法在仪表盘自动缩放。 |
Config | 其他属性的样式描述信息,如描述标题字体大小 |
Data | 定义、加载、解析作图数据 |
Transform | 数据处理,建议在数据视图中完成 |
Triggers | 触发器,当数据集或某个图形属性变化时通知变量变化 |
Projections | 地理坐标系投影,将经纬度转换为可视化地图 |
Scales | 比例尺,转换数据从原始数据变为图形大小、坐标等 |
Schemes | 颜色模版,可作为比例尺的范围 |
Axes | 描绘坐标轴,如X轴、Y轴 |
Legends | 图例,如颜色、形状、大小 |
Title | 图表内的标题 |
Marks | 形状,语法核心,用于描述图形,如需要矩形、弧形等 |
Signals | 动态变量,可触发交互更新 |
Event Streams | 事件流,定义某些交互事件的操作行为 |
Expressions | 表达式,用于数据或变量的中的数据计算 |
Layout | 多图形时的布局,如同时绘制一个柱图和图片的位置 |
Types | 其他属性所需的参数类型 |
4. 开始画图
5. 图表调试
- 可在console控制台使用如下对象
BDPVegaView
代替Vega的view
- 查看数据来源name的详情:
BDPVegaView.data('name')
,更多用法请查看官方文档
- 查看数据来源name的详情:
- 调式某个对象时,可在原有上增加
warn()
,同样输出在 console控制台- 在数据更新时计算变量并输出结果:
"update": "warn([50, min(width, height)/3 + 50])",
- 在数据更新时计算变量并输出结果: