var dom = document.getElementById("echart");
获取实例容器,一般是一个具有高宽的div元素。
var myChart = echarts.init(dom);
创建一个 ECharts 实例,返回 echartsInstance,不能在单个容器上初始化多个 ECharts 实例。
var option = {
tooltip: {
trigger: "axis",
axisPointer: {
type: 'cross'
},
backgroundColor: 'rgba(245, 245, 245, 0.8)',
borderWidth: 1,
borderColor: '#ccc',
padding: 10,
textStyle: {
color: '#000'
},
position: function (pos, params, el, elRect, size) {
var obj = {top: 10};
obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 30;
return obj;
},
extraCssText: 'width: 170px'
}
}
// 绝对位置,相对于容器左侧 10px, 上侧 10 px
position: [10, 10]
// 相对位置,放置在容器正中间
position: ['50%', '50%']
回调函数如下:
(point: Array, params: Object|Array., dom: HTMLDomElement, rect: Object, size: Object) => Array
参数:
point: 鼠标位置,如 [20, 40]。
params: 同 formatter 的参数相同。
dom: tooltip 的 dom 对象。
rect: 只有鼠标在图形上时有效,是一个用x, y, width, height四个属性表达的图形包围盒。
size: 包括 dom 的尺寸和 echarts 容器的当前尺寸,例如:{contentSize: [width, height], viewSize: [width, height]}。
返回值:
可以是一个表示 tooltip 位置的数组,数组值可以是绝对的像素值,也可以是相 百分比。
也可以是一个对象,如:{left: 10, top: 30},或者 {right: ‘20%’, bottom: 40}。
如下示例:
position: function (point, params, dom, rect, size) {
// 固定在顶部
return [point[0], '10%'];
}
或者:
position: function (pos, params, dom, rect, size) {
// 鼠标在左侧时 tooltip 显示到右侧,鼠标在右侧时 tooltip 显示到左侧。
var obj = {top: 60};
obj[['left', 'right'][+(pos[0] < size.viewSize[0] / 2)]] = 5;
return obj;
}
**inside** 鼠标所在图形的内部中心位置,只在 trigger 为'item'的时候有效。
**top** 鼠标所在图形上侧,只在 trigger 为'item'的时候有效。
**left** 鼠标所在图形左侧,只在 trigger 为'item'的时候有效。
**right** 鼠标所在图形右侧,只在 trigger 为'item'的时候有效。
**bottom** 鼠标所在图形底侧,只在 trigger 为'item'的时候有效
axisPointer: {
link: {xAxisIndex: 'all'},
label: {
backgroundColor: '#777'
}
},
工具栏。内置有导出图片,数据视图,动态类型切换,数据区域缩放,重置五个工具。
toolbox: {
show: true,
showTitle: false, // 隐藏默认文字,否则两者位置会重叠
feature: {
saveAsImage: {
show: true,
title: 'Save As Image'
},
dataView: {
show: true,
title: 'Data View'
},
},
tooltip: { // 和 option.tooltip 的配置项相同
show: true,
formatter: function (param) {
return return '' + param.title + ''; // 自定义的 DOM 结构
},
backgroundColor: '#222',
textStyle: {
fontSize: 12,
},
extraCssText: 'box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);' // 自定义的 CSS 样式
}
},
图例组件展现了不同系列的标记(symbol),颜色和名字。可以通过点击图例控制哪些系列不显示。
type选项:
plain:普通图例。缺省就是普通图例。
scroll:可滚动翻页的图例。当图例数量较多时可以使用。
legend: {
top: "6%",
data: label,
textStyle: {
color: "#fff" // 图例文字颜色
},
type: "scroll",
}
直角坐标系内绘图网格,单个 grid 内最多可以放置上下两个 X 轴,左右两个 Y 轴
grid: {
left: "2%",
right: "5%",
bottom: "3%",
containLabel: true
}
xAxis: {
type: "category",
boundaryGap: false,
// 坐标轴两边留白策略,类目轴和非类目轴的设置和表现不一样。
//类目轴中 boundaryGap 可以配置为 true 和 false。默认为 true,这时候刻度只是作为分隔线,标签和数据点都会在两个刻度之间的带(band)中间。
//非类目轴,包括时间,数值,对数轴,boundaryGap是一个两个值的数组,分别表示数据最小值和最大值的延伸范围,可以直接设置数值或者相对的百分比,在设置 min 和 max 后无效。
axisLabel: { // 坐标轴刻度标签的相关设置。
show: true, // 是否显示刻度标签。
textStyle: { // 字体样式。
color: "#fff"
},
interval: count
// 坐标轴刻度标签的显示间隔,在类目轴中有效。
// 默认会采用标签不重叠的策略间隔显示标签。
// 可以设置成 0 强制显示所有标签。
// 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。
},
splitLine: { // 坐标轴在 grid 区域中的分隔线。
//网格线
lineStyle: {
type: "dashed", //设置网格线类型 dotted:虚线 solid:实线
color: "gray"
// 分隔线颜色,可以设置成单个颜色。
// 也可以设置成颜色数组,分隔线会按数组中颜色的顺序依次循环设置颜色。
},
show: true // 隐藏或显示
},
axisLine: { // 坐标轴轴线相关设置。
lineStyle: {
color: "#fff" // 坐标轴线线的颜色。
}
},
data: this.newTime
},
yAxis: {
type: "value",
splitLine: {
lineStyle: {
type: "dashed",
color: "gray"
},
show: true //隐藏或显示
},
axisLabel: {
show: true,
textStyle: {
color: "#fff" // 设置坐标轴上的字的颜色
}
},
axisLine: {
lineStyle: {
color: "#fff" // 设置xy轴的线的颜色
}
},
minInterval: 0.005
},
series: [
{
data: arr[item],
type: "line", // 显示类型
name: item, // 显示legend
smooth: true, // 是否平滑曲线显示。
symbolSize: 1, // 标记的大小,可以设置成诸如 10 这样单一的数字,也可以用数组分开表示宽和高,例如 [20, 10] 表示标记宽为20,高为10。
connectNulls: true, // 将断点连接
itemStyle: {
color: "#32CD32" // 颜色设置
}
}
]
};
myChart.setOption(option, true); // 设置为true,解决echarts二次渲染时出错
window.addEventListener("resize", function() {
myChart.resize();
});