10

前言:项目中经常会使用到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轴的设置。


我明涛
161 声望1 粉丝

一个前段菜鸟。