常用配置速查
xAxis / yAxis
x | y
轴配置
type
: 坐标轴类型 (value
表示为数值轴)axisTick: {}
: 坐标轴刻度相关设置axisLine: {}
: 坐标轴轴线相关设置axisPointer: {}
: 坐标轴指示器配置项boundaryGap: [0, 1] | Boolean
: 坐标轴两边留白策略data: []
: 类目数据,在类目轴(type: 'catagory')
中有效
legend
图例
left, right, top, bottom
: 离四个方向的距离width, height
: 宽度和高度orient: 'horizontal' | 'vertical'
: 布局朝向:水平 | 垂直align: 'left' | 'right'
: 图例和文本对齐方式itemGap
: 图例每一项之间的间隔itemWidth, itemHeight
: 图形宽度,高度itemStyle
: 图形样式ineStyle
: 图形中线的样式textStyle
: 公用文本样式data
: 图例的数据数组
series
数据形状配置
line
{ type: 'line' }
name
: 线段名xAxisIndex
:x
轴的index
, 在单个图标实例存在多个x
轴的时候有用yAxisIndex
:y
轴的index
, 在单个图标实例存在多个y
轴的时候有用smooth
: 是否开启平滑处理emphasis: {}
: 高亮状态select: {}
: 选中状态markPoint: {}
: 图标记点endLabel: {}
: 折线端点的标签labelLayout: {}
: 标签的统一布局配置.moveOverlap: 'shiftX' | 'shiftY
: 标签重叠时是否挪动标签位置(水平/垂直方向依次位移)
data: []
: 数据
bar
{ type: 'bar' }
label: {} | String
: 柱状图标签data: [{ stack: '90%' }]
: 堆叠柱状图data: [{ stack: 'typeName'}]
: 堆叠归属某一类barWidth
: 柱状图宽度markPoint: {}
: 图标记点markLine: {}
: 图标记线
pie
{ type: 'pie' }
radius: String | []
: 为字符串时是实心饼图,为二元组时表示内外半径的环形饼图center: []
: 圆心坐标(横坐标,纵坐标)padAngle (0-360)
: 扇区之间的间隔minShowLabelAngle (0-369)
: 小于这个角度的扇区,不显示标签startAngle, endAngle
: 起止弧度selectMode
: 选择模式select: {}
: 选择模式开启后的选择样式
radar
{ type: 'radar' }
data: [{ symbol: String, symbolSize: Number }]
: 标记符号data: [{ lineStyle: {} }]
: 连线样式
option.radar
:
json
{
"indicator": [{ "name": "String", "max": "Number" }],
"shape": "polygon | circle",
"splitArea": {} // 划分区域
}
map
{ type: 'map' }
roam
: 是否可拖动和放缩map
: 注册的地图名称nameMap: {}
: 自定义地图的名称映射
数据集: dataset
常用形式
js
const option = {
dataset: [
{
// 二维数组形式
source: [
["product", "2015", "2016", "2017"],
["Matcha Latte", 43.3, 85.8, 93.7],
["Milk Tea", 83.1, 73.4, 55.1],
["Cheese Cocoa", 86.4, 65.2, 82.5],
["Walnut Brownie", 72.4, 53.9, 39.1],
],
},
{
// 对象数组形式
source: [
{ product: "Matcha Latte", 2015: 43.3, 2016: 85.8, 2017: 93.7 },
{ product: "Milk Tea", 2015: 83.1, 2016: 73.4, 2017: 55.1 },
{ product: "Cheese Cocoa", 2015: 86.4, 2016: 65.2, 2017: 82.5 },
{ product: "Walnut Brownie", 2015: 72.4, 2016: 53.9, 2017: 39.1 },
],
},
],
};
dimension
维度
在二维数组中,每一列就是一个维度:
js
const option = {
dataset: {
dimension: [
{ name: "product", type: "ordinal" },
{ name: "2015", type: "ordinal" },
{ name: "2016", type: "ordinal" },
{ name: "2017", type: "ordinal" },
],
},
};
type
可以是:
number
ordinal
: 对于类目,文本这些string
类型的数据,如果需要能子啊数轴上使用,必须是ordinal
time
float
int
encode
数据映射
encode
: { x: 0, y: 1, tooltip: [0, 1] }
当使用 dimensions
给维度定义名称后,可以直接引用名称:
json
{
"series": {
"type": "xxx",
"dimensions": ["date", "open", "close", "highest", "lowest"],
"encode": {
"x": "date",
"y": ["open", "close", "highest", "lowest"]
}
// encode 还支持: tooltip, seriesName, itemId, itemName
}
}
多个 dataset 引用
js
var option = {
dataset: [
{
// 序号为 0 的 dataset。
source: [],
},
{
// 序号为 1 的 dataset。
source: [],
},
{
// 序号为 2 的 dataset。
source: [],
},
],
series: [
{
// 使用序号为 2 的 dataset。
datasetIndex: 2,
},
{
// 使用序号为 1 的 dataset。
datasetIndex: 1,
},
],
};
transform
数据转换
transform: outData = f(inputData)
其中, f
可以是:
filter
sort
regression
boxplot
cluster
aggregate(todo)
transform
是依托 dataset
实现的,用于生成一个新的 dataset
, 常用于筛选,过滤或者排序等, 比如:
js
const option = {
dataset: [
{
source: [],
},
{
// datasetIndex: 1
transform: {
type: "filter",
config: { dimension: "Year", value: 2012 },
},
},
],
};
多 Y 轴
json
{
"yAxis": [
{
"type": "value",
"name": "label01",
"position": "left", // 位置
"axisLine": {}, // 坐标轴轴线相关设置
"axisLabel": {} // 坐标轴标签相关设置
}
// ...
],
"legend": {
"data": ["label01", "label02", "label03"]
},
"series": [
{ "name": "label01", "type": "type1" },
{ "name": "label02", "type": "type2", "yAxisIndex": 0 }, // yAxisIndex 表示使用的 y 轴的 index
{ "name": "label03", "type": "type3" }
]
}
变形动画
从两个不同的 series
切换时的动画效果:
series
:.animationDurationUpdate
: 数据更新动画的时长.universalTransition: Boolean | {}
: 全局过渡动画开关
js
const barOption = {}; // 柱状图配置
const mapOption = {}; // 地图配置
let currentOption = mapOption;
myChart.setOption(mapOption);
// 随时间切换配置
setInterval(function () {
currentOption = currentOption === mapOption ? barOption : mapOption;
myChart.setOption(currentOption, true);
}, 4000);
初始动画时长: animationDuration
visualMap
视觉映射组件
分为连续型 (continuous)
和离散型 (piecewise)
是否显示 visualMap-piecewise
组件: show
维度选择: dimension
, 二维数据下 (xy)
, 默认选取最后一个维度 (y)
, 0 => x, 1 => y
系列数据: seriesIndex
, 默认选取所有系列
piecewise
型:
pieces: []
: 分片,dimension: 0, { lte: 6, color: '#000'}
<=>x
轴点数小于等于6
时,color: #000
- 比较符号:
lt, gt, lte, gte, "="
continuous
型:
{ type: continuous, min: 0, max: 400 }
<=>y
的数据最小为0
, 最大为400
{ type: dimension: 0, min: 0, max: dataList.length-1 }
<=> 覆盖x
轴所有数据点
dataZoom
数据区域缩放
type: 'inside' | 'slider'
: 内置型 | 滑动条形start(end)
: 起止(百分比)startValue(endValue)
: 起止(数值)axAxisIndex(yAxisIndex): [] | number
: 区域缩放组件控制的x,y
轴index
minSpan(maxSpan)
: 限制窗口最小(最大)百分比minValueSpan(maxValueSpan)
: 限制窗口最小(最大)值