前言:项目中经常会使用到Echarts,有的需求差不多复用性高,由于之前没有好好总结,时间一长就容易忘,所以这里总结一下Echarts折线图使用,下面会列举官网一些Api。
一、效果图
二、配置基础折线图
第一步:先初始化
let myChart = echarts.init(document.getElementById("echarts-line"));
第二部:定义配置项
option = {
xAxis: {
type: 'category',
boundaryGap: false,
data: ['01.23', '01.24', '01.25', '01.26', '01.27', '01.28', '01.29']
},
yAxis: {
type: 'value'
},
series: [{
data: [15, 14, 10, 11, 14.58, 10, 11.5],
type: 'line',
areaStyle: {}
}]
};
最后:渲染
myChart.setOption(option);
三、一步一步修改Option
xAxis:X轴
type:x轴坐标轴类型
- 'value' 数值轴,适用于连续数据。
- 'category' 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据。
- 'time' 时间轴,适用于连续的时序数据,与数值轴相比时间轴带有时间的格式化,在刻度计算上也有所不同,例如会根据跨度的范围来决定使用月,星期,日还是小时范围的刻度。
- 'log' 对数轴。适用于对数数据。
常用的类型为'category',需要定义对呀的类目数据,这个例子中的类目数据为日期组成的数据。
boundaryGap:坐标轴两边留白
- 可配置true或false或者为一个数组,默认为true
- 非类目轴,包括时间,数值,对数轴,boundaryGap是一个两个值的数组,分别表示数据最小值和最大值的延伸范围,可以直接设置数值或者相对的百分比。
在该例子中:坐标轴两边留白10%
axisLine:坐标轴轴线相关设置
- show:是否显示,坐标轴线包括x轴那根黑色(#333)的线和刻度名称
- lineStyle:设置轴线样式,包括轴线颜色、宽度、透明度、线的类型、阴影等
- 更多...:更多可参看官网api,可以设置箭头方向、大小、刻度线是否在坐标0刻度上
在该例子中:通过设置轴线的透明度实现视觉上颜色为浅灰色
axisTick:坐标轴刻度相关设置
- show:是否显示
- interval:显示间隔,默认为'auto'
- inside:刻度是否朝外,默认false
- length:刻度的长度,数值
- lineStyle:设置刻度线样式,包括轴线颜色、宽度、透明度、线的类型、阴影等
在该例子中:设置刻度线为不显示
splitLine:坐标轴在 grid 区域中的分隔线(在网格中竖立的线)
- show:是否显示
- interval:显示间隔,默认为'auto'
- lineStyle:设置网格线样式,包括轴线颜色、宽度、透明度、线的类型、阴影等
X轴的代码
xAxis: {
type: 'category',
data: ['01.23', '01.24', '01.25', '01.26', '01.27', '01.28', '01.29'],
boundaryGap: ['10%', '10%',],//坐标轴两边留白
axisLine: {//坐标轴
lineStyle:{
opacity: 0.01,//设置透明度就可以控制显示不显示
},
},
splitLine: {//网格线
show: false,//网格线
lineStyle:{
color: '#eeeeee',
},
},
axisTick: {//刻度线
show: false,//去掉刻度线
},
},
yAxis:Y轴
X轴与Y轴的文档大致是一样的,所以就列举例子中的设置
- Y轴的刻度线我设置透明度为0,
- 设置了坐标轴名称
- 设置了网格线颜色
Y轴的代码
yAxis: {
min:0,//最小刻度
max:25,//最大刻度
type: 'value',
name:'℃ ',//是基于Y轴线对齐,用空格站位让坐标轴名称与刻度名称对齐
nameTextStyle: {
color:'#444e65',
align:'left',//文字水平对齐方式
verticalAlign:'middle',//文字垂直对齐方式
},
axisTick: {//刻度线
show: false,//去掉刻度线
},
axisLine: {//坐标轴线
lineStyle:{
opacity: 0,//透明度为0
},
},
splitLine: {//网格线
// show: false,//网格线
lineStyle:{
color: '#eeeeee',
},
},
},
series:系列列表
label:图形上的文本标签,可用于说明图形的一些数据信息
- show:是否显示
- position:标签的位置。默认为top,可选值有14种
- rich:在 rich 里面,可以自定义富文本样式。
- 更多...:更多可参看官网api,例如颜色、字体、背景等相关设置
itemStyle:折线拐点标志的样式
- color:颜色值
- 描边设置:borderColor(颜色)、borderWidth(宽度)、borderType(类型)
- 更多...:更多可参看官网api,例如阴影、透明度
areaStyle:区域填充样式
- color:颜色值
- 描边设置:borderColor(颜色)、borderWidth(宽度)、borderType(类型)
在该例子中:设置区域填充样式为线性渐变
数据画折线
series: [{
data: [15, 14, 10, 11, 14.58, 10, 11.5,],//数据
type: 'line',//图表类型,折线图还是柱状图还是饼图
label: {//图形上的文本标签
normal:{
formatter: '{@data}℃',
show: true,//显示数据
color: '#00af58',
position: 'top',
fontSize:'14',
},
},
itemStyle: {//折线拐点标志的样式。
normal: {
color: '#00af58',
},
},
areaStyle: {//区域填充样式
normal:{
color: {
type:'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: 'rgba(0, 175, 88, 0.4)',
},
{
offset: 1,
color: 'rgba(0, 175, 88, 0.01)',
},
],
globaCoord: false,
},
},
},
},],
四、其他
echarts颜色设置
Echarts颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)',如果想要加上 alpha 通道表示不透明度,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'。除了纯色之外颜色也支持渐变色和纹理填充
// 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1,相当于在图形包围盒中的百分比,如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0, color: 'red' // 0% 处的颜色
}, {
offset: 1, color: 'blue' // 100% 处的颜色
}],
globalCoord: false // 缺省为 false
}
// 径向渐变,前三个参数分别是圆心 x, y 和半径,取值同线性渐变
color: {
type: 'radial',
x: 0.5,
y: 0.5,
r: 0.5,
colorStops: [{
offset: 0, color: 'red' // 0% 处的颜色
}, {
offset: 1, color: 'blue' // 100% 处的颜色
}],
globalCoord: false // 缺省为 false
}
// 纹理填充
color: {
image: imageDom, // 支持为 HTMLImageElement, HTMLCanvasElement,不支持路径字符串
repeat: 'repeat' // 是否平铺, 可以是 'repeat-x', 'repeat-y', 'no-repeat'
}
代码
GitHub:https://github.com/myNameTao/...
总结
因为不熟悉Echarts还是需要花时间慢慢看文档,所以整理这个例子是便于遇到类似的需求就可以拿过直接用。在使用Echarts之前觉得这个插件Api内容很多,但是去看了一遍折线图的Api后发现有很多都是类似的,例如X轴与Y轴的设置。