Echarts4.0 使用系列——折线图,这里可能有你需要的

需求狂
• 阅读 21173

前言:项目中经常会使用到Echarts,有的需求差不多复用性高,由于之前没有好好总结,时间一长就容易忘,所以这里总结一下Echarts折线图使用,下面会列举官网一些Api。

一、效果图

Echarts4.0 使用系列——折线图,这里可能有你需要的

二、配置基础折线图

第一步:先初始化

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轴的设置。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Karen110 Karen110
4年前
​一篇文章总结一下Python库中关于时间的常见操作
前言本次来总结一下关于Python时间的相关操作,有一个有趣的问题。如果你的业务用不到时间相关的操作,你的业务基本上会一直用不到。但是如果你的业务一旦用到了时间操作,你就会发现,淦,到处都是时间操作。。。所以思来想去,还是总结一下吧,本次会采用类型注解方式。time包importtime时间戳从1970年1月1日00:00:00标准时区诞生到现在
Easter79 Easter79
4年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
4年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Wesley13 Wesley13
4年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Python进阶者 Python进阶者
2年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这