【ECharts】折线图

news2024/11/24 11:22:15

文章目录

  • 折线图1
  • 折线图2
  • 折线图3
  • 示例

参考:
Echarts官网
Echarts 配置项

折线图1

带X轴、Y轴标记线,其中X轴是’category’ 类目轴,适用于离散的类目数据。
在这里插入图片描述

let myChart = echarts.init(this.$refs.line_chart2);
let yList = [400, 500, 600, 800, 1200, 1500, 1300, 900, 700, 600, 500];
let xList = ['n-5', 'n-4', 'n-3', 'n-2', 'n-1', 'n', 'n+1', 'n+2', 'n+3', 'n+4', 'n+5'];
let option = {
  title: {
    text: '折线图2',
  },
  tooltip: { show: true },
  xAxis: {
    type: 'category',
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
    },
    data: xList,
  },
  yAxis: {
    type: 'value',
    //网格线
    splitLine: {
      lineStyle: {
        type: 'dashed', //设置网格线类型 dotted:虚线 solid:实线
      },
    },
  },
  series: [
    {
      type: 'line',
      smooth: true,
      symbolSize: 6,
      symbol: 'circle',
      data: yList,
      color: '#FFC310',
      //区域填充样式
      areaStyle: {
        //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgba(246,198,56, 0.6)',
          },
          {
            offset: 1,
            color: 'rgba(246,198,56, 0)',
          },
        ]),
      },
      markLine: {
        silent: true,
        symbol: ['none', 'none'],
        lineStyle: {
          type: 'dashed',
          dashOffset: 1,
          width: 1,
          opacity: 0.6,
        },
        data: [
          {
            name: 'x轴标记线',
            xAxis: 'n',
            label: {
              formatter: '{b}:{c}',
            },
            lineStyle: {
              color: '#0050FF',
            },
          },
          {
            name: 'y轴标记线',
            yAxis: 800,
            label: {
              formatter: '{b}:{c}',
              position: 'insideEndTop',
            },
            lineStyle: {
              color: '#00C078',
            },
          },
        ],
      },
    },
  ],
};

myChart.setOption(option);

折线图2

带X轴、Y轴标记线,其中’value’ 数值轴,适用于连续数据。
在这里插入图片描述

let myChart = echarts.init(this.$refs.line_chart3);
let intervalNum = 2;
//  数据类型为二维数组
let dataArray = [
  [0, 400],
  [2, 500],
  [4, 800],
  [5, 1200],
  [7, 400],
  [8, 500],
  [10, 400],
  [12, 500],
];
let option = {
  title: {
    text: '折线图2',
  },
  tooltip: {
    show: true,
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
    },
    formatter: '{c}',
  },
  xAxis: {
    type: 'value',
    axisTick: {
      // 文字对准刻度
      alignWithLabel: true,
      color: '#C1C7D0',
    },
    minInterval: intervalNum,
    maxssInterval: intervalNum,
  },
  yAxis: {
    type: 'value',
    //网格线
    splitLine: {
      lineStyle: {
        type: 'dashed', //设置网格线类型 dotted:虚线 solid:实线
      },
    },
  },
  series: [
    {
      type: 'line',
      smooth: true,
      symbolSize: 6,
      symbol: 'circle',
      data: dataArray,
      color: '#FFC310',
      //区域填充样式
      areaStyle: {
        //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          {
            offset: 0,
            color: 'rgba(246,198,56, 0.6)',
          },
          {
            offset: 1,
            color: 'rgba(246,198,56, 0)',
          },
        ]),
      },
      markLine: {
        silent: true,
        symbol: ['none', 'none'],
        lineStyle: {
          color: '#FFC310',
          type: 'dashed',
          dashOffset: 1,
          width: 1,
          opacity: 0.6,
        },
        data: [
          {
            name: 'x轴标记线',
            xAxis: 7.2,
            label: {
              formatter: '{b}:{c}',
            },
            lineStyle: {
              color: '#0050FF',
            },
          },
          {
            name: 'y轴标记线',
            yAxis: 800,
            label: {
              formatter: '{b}:{c}',
              position: 'insideEndTop',
            },
            lineStyle: {
              color: '#00C078',
            },
          },
        ],
      },
    },
  ],
};
myChart.setOption(option);

折线图3

多条折线图
在这里插入图片描述

 let myChart = echarts.init(this.$refs.line_chart4);
 let option = {
   title: {
     text: '折线图3',
   },
   tooltip: {
     trigger: 'axis',
     valueFormatter: value => value + '个',
   },
   legend: {
     data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'],
   },
   grid: {
     left: '3%',
     right: '4%',
     bottom: '3%',
     containLabel: true,
   },
   toolbox: {
     feature: {
       saveAsImage: {},
     },
   },
   xAxis: {
     type: 'category',
     boundaryGap: false,
     data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
   },
   yAxis: {
     type: 'value',
   },
   series: [
     {
       name: 'Email',
       type: 'line',
       stack: 'Total',
       data: [120, 132, 101, 134, 90, 230, 210],
     },
     {
       name: 'Union Ads',
       type: 'line',
       stack: 'Total',
       data: [220, 182, 191, 234, 290, 330, 310],
     },
     {
       name: 'Video Ads',
       type: 'line',
       stack: 'Total',
       data: [150, 232, 201, 154, 190, 330, 410],
     },
     {
       name: 'Direct',
       type: 'line',
       stack: 'Total',
       data: [320, 332, 301, 334, 390, 330, 320],
     },
     {
       name: 'Search Engine',
       type: 'line',
       stack: 'Total',
       data: [820, 932, 901, 934, 1290, 1330, 1320],
     },
   ],
 };
 myChart.setOption(option);

示例

 <!--
 * @Description: 
 * @Author: HMM
 * @Date: 2023-05-22 10:49:48
 * @FilePath: \vue-antd-project2\src\views\LineChart.vue
-->
<template>
  <div class="lineChart">
    <div ref="line_chart1" style="width: 100%; height: 500px"></div>
    <div ref="line_chart2" style="width: 100%; height: 500px"></div>
    <div ref="line_chart3" style="width: 100%; height: 500px"></div>
    <div ref="line_chart4" style="width: 100%; height: 500px"></div>
    <br />
  </div>
</template>
<script>
import * as echarts from 'echarts';
export default {
  methods: {
    initLineChart1() {
      let myChart = echarts.init(this.$refs.line_chart1);
      let xData = ['9:00', '11:00', '', '15:00', '17:00', '', '20:00'];
      let valueData = [6.0, 8.5, 7.6, 3.5, 10.0, 9.5, 11.0];
      let option = {
        title: [
          {
            text: '恭喜您超过50%的组员!',
            top: '0',
            left: '20',
            textStyle: {
              color: '#FFA000',
              fontSize: 13,
            },
          },
        ],
        grid: {
          top: '50',
          left: '20',
          right: '20',
          bottom: '8%',
          containLabel: true,
        },
        xAxis: [
          {
            type: 'category',
            boundaryGap: false,
            axisLine: { show: false },
            axisLabel: {
              //坐标轴刻度标签的相关设置
              textStyle: {
                color: '#000000',
                margin: 15,
              },
            },
            axisTick: { show: false },
            data: xData,
          },
        ],
        yAxis: [
          {
            type: 'value',
            // min: 1,
            // max: 100,
            splitLine: { show: false },
            axisLine: { show: false },
            axisLabel: { show: false },
            axisTick: { show: false },
          },
        ],
        series: [
          {
            name: '金额',
            type: 'line',
            smooth: true, //是否平滑曲线显示
            symbol: 'none',
            color: '#1874FF',
            //区域填充样式
            areaStyle: {
              color: 'rgba(24,116,255, 0.2)',
              shadowColor: 'rgba(24,116,255, 0.9)',
              shadowBlur: 20,
            },
            data: valueData,
            markLine: {
              silent: true,
              symbol: ['none', 'none'],
              lineStyle: {
                width: 2,
                type: 'dotted',
                color: '#E9E9E9',
              },
              data: [
                {
                  name: '组均',
                  yAxis: 8,
                  label: {
                    position: 'insideStartTop',
                    formatter: '组均:{c} ',
                  },
                },
                {
                  name: '我的',
                  yAxis: 10,
                  label: {
                    position: 'insideStartTop',
                    formatter: '我的:{c} ',
                  },
                },
                {
                  name: '测试',
                  yAxis: 100,
                  label: {
                    position: 'insideStartTop',
                    formatter: '测试:{c} ',
                  },
                },
              ],
            },
          },
        ],
      };

      myChart.setOption(option);
    },
    initLineChart2() {
      let myChart = echarts.init(this.$refs.line_chart2);
      let yList = [400, 500, 600, 800, 1200, 1500, 1300, 900, 700, 600, 500];
      let xList = ['n-5', 'n-4', 'n-3', 'n-2', 'n-1', 'n', 'n+1', 'n+2', 'n+3', 'n+4', 'n+5'];
      let option = {
        title: {
          text: '折线图1',
        },
        tooltip: { show: true },
        xAxis: {
          type: 'category',
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
          },
          data: xList,
        },
        yAxis: {
          type: 'value',
          //网格线
          splitLine: {
            lineStyle: {
              type: 'dashed', //设置网格线类型 dotted:虚线 solid:实线
            },
          },
        },
        series: [
          {
            type: 'line',
            smooth: true,
            symbolSize: 6,
            symbol: 'circle',
            data: yList,
            color: '#FFC310',
            //区域填充样式
            areaStyle: {
              //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: 'rgba(246,198,56, 0.6)',
                },
                {
                  offset: 1,
                  color: 'rgba(246,198,56, 0)',
                },
              ]),
            },
            markLine: {
              silent: true,
              symbol: ['none', 'none'],
              lineStyle: {
                type: 'dashed',
                dashOffset: 1,
                width: 1,
                opacity: 0.6,
              },
              data: [
                {
                  name: 'x轴标记线',
                  xAxis: 'n',
                  label: {
                    formatter: '{b}:{c}',
                  },
                  lineStyle: {
                    color: '#0050FF',
                  },
                },
                {
                  name: 'y轴标记线',
                  yAxis: 800,
                  label: {
                    formatter: '{b}:{c}',
                    position: 'insideEndTop',
                  },
                  lineStyle: {
                    color: '#00C078',
                  },
                },
              ],
            },
          },
        ],
      };

      myChart.setOption(option);
    },

    initLineChart3() {
      let myChart = echarts.init(this.$refs.line_chart3);
      let intervalNum = 2;
      let dataArray = [
        [0, 400],
        [2, 500],
        [4, 800],
        [5, 1200],
        [7, 400],
        [8, 500],
        [10, 400],
        [12, 500],
      ];
      let option = {
        title: {
          text: '折线图2',
        },
        tooltip: {
          show: true,
          trigger: 'axis',
          axisPointer: {
            type: 'cross',
          },
          formatter: '{c}',
        },
        xAxis: {
          type: 'value',
          axisTick: {
            // 文字对准刻度
            alignWithLabel: true,
            color: '#C1C7D0',
          },
          minInterval: intervalNum,
          maxssInterval: intervalNum,
        },
        yAxis: {
          type: 'value',
          //网格线
          splitLine: {
            lineStyle: {
              type: 'dashed', //设置网格线类型 dotted:虚线 solid:实线
            },
          },
        },
        series: [
          {
            type: 'line',
            smooth: true,
            symbolSize: 6,
            symbol: 'circle',
            data: dataArray,
            color: '#FFC310',
            //区域填充样式
            areaStyle: {
              //线性渐变,前4个参数分别是x0,y0,x2,y2(范围0~1);相当于图形包围盒中的百分比。如果最后一个参数是‘true’,则该四个值是绝对像素位置。
              color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
                {
                  offset: 0,
                  color: 'rgba(246,198,56, 0.6)',
                },
                {
                  offset: 1,
                  color: 'rgba(246,198,56, 0)',
                },
              ]),
            },
            markLine: {
              silent: true,
              symbol: ['none', 'none'],
              lineStyle: {
                color: '#FFC310',
                type: 'dashed',
                dashOffset: 1,
                width: 1,
                opacity: 0.6,
              },
              data: [
                {
                  name: 'x轴标记线',
                  xAxis: 7.2,
                  label: {
                    formatter: '{b}:{c}',
                  },
                  lineStyle: {
                    color: '#0050FF',
                  },
                },
                {
                  name: 'y轴标记线',
                  yAxis: 800,
                  label: {
                    formatter: '{b}:{c}',
                    position: 'insideEndTop',
                  },
                  lineStyle: {
                    color: '#00C078',
                  },
                },
              ],
            },
          },
        ],
      };
      myChart.setOption(option);
    },

    initLineChart4() {
      let myChart = echarts.init(this.$refs.line_chart4);
      let option = {
        title: {
          text: '折线图3',
        },
        tooltip: {
          trigger: 'axis',
          valueFormatter: value => value + '个',
        },
        legend: {
          data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine'],
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '3%',
          containLabel: true,
        },
        toolbox: {
          feature: {
            saveAsImage: {},
          },
        },
        xAxis: {
          type: 'category',
          boundaryGap: false,
          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        },
        yAxis: {
          type: 'value',
        },
        series: [
          {
            name: 'Email',
            type: 'line',
            stack: 'Total',
            data: [120, 132, 101, 134, 90, 230, 210],
          },
          {
            name: 'Union Ads',
            type: 'line',
            stack: 'Total',
            data: [220, 182, 191, 234, 290, 330, 310],
          },
          {
            name: 'Video Ads',
            type: 'line',
            stack: 'Total',
            data: [150, 232, 201, 154, 190, 330, 410],
          },
          {
            name: 'Direct',
            type: 'line',
            stack: 'Total',
            data: [320, 332, 301, 334, 390, 330, 320],
          },
          {
            name: 'Search Engine',
            type: 'line',
            stack: 'Total',
            data: [820, 932, 901, 934, 1290, 1330, 1320],
          },
        ],
      };
      myChart.setOption(option);
    },
  },
  mounted() {
    this.initLineChart1();
    this.initLineChart2();
    this.initLineChart3();
    this.initLineChart4();
  },
};
</script>
<style style="less" scoped></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1325932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kibana-7.15.2 一分钟下载、安装、部署 linux

文章目录 一、下载安装部署 1. 下载2. 解压3. 修改配置 二、kibana 启动 2.1. 创建kibana 用户2.2. 赋予权限2.3. 切换用户2.4. kibana启动2.5. 监控服务2.6. 监控服务2.7. kibana停止2.8. 效果图 三、kibana 启动2 3.1. 浏览器访问3.2. 效果图 一、下载安装部署 https:…

Google Play不会凭空消失,这篇文章带你重新找回丢失的它

你是不是因为不小心从手机上删除了Google Play而难过?或者你是否注意到你的Android设备上缺少Google Play图标?你一定很担心你现在会如何下载应用程序。别担心。在这篇文章中,我们将告诉你如何恢复已删除的谷歌商店。 Google Play可以卸载吗 让我们明确一点:除了一些特殊…

k8s 中部署Jenkins

创建namespace apiVersion: v1 kind: Namespace metadata:name: jenkins创建pv以及pvc kind: PersistentVolume apiVersion: v1 metadata:name: jenkins-pv-volumenamespace: jenkinslabels:type: localapp: jenkins spec:#storageClassName: manualcapacity:storage: 5Giacc…

【前端基础】script引入资源脚本加载失败解决方案(重新加载获取备用资源)

问题描述 现在假设有一个script资源加载失败&#xff0c;代码如下 <!DOCTYPE html> <html> <head><title>script 资源加载失败</title> </head> <body><script src"http:hdh.sdas.asdas/1.js"></script> &l…

智能优化算法应用:基于类电磁机制算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于类电磁机制算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于类电磁机制算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.类电磁机制算法4.实验参数设定5.算法…

Git账户密码http方式的配置

Git账户密码http方式的配置 入门 git在提交时每次都需要输入密码和账号信息&#xff0c;可以将账号和密码进行持久化存储&#xff0c; 当git push的时候输入一次用户名和密码就会被记录&#xff0c; 不需要每次输入&#xff0c;提高效率&#xff0c;进行一下配置&#xff1…

linux网络版计算机

文章目录 前言一、网络版计算机1.序列化与反序列化2.网络版计算机实现3.守护进程4.json格式 前言 一、网络版计算机 1.序列化与反序列化 协议是一种 “约定”. socket api的接口, 在读写数据时, 都是按 “字符串” 的方式来发送接收的. 如果我们要传输一些"结构化的数据…

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界

2023 英特尔On技术创新大会直播 | 窥探未来科技的边界 写在最前面观后感其他有趣的专题课程 写在最前面 嘿&#xff0c;你是不是对科技和创新充满好奇&#xff1f;2023 英特尔 On 技术创新大会线上活动邀请你一起探索最前沿的科技世界&#xff01; 这不仅是一场普通的聚会&…

关于“Python”的核心知识点整理大全31

目录 12.4.2 在屏幕上绘制飞船 alien_invasion.py ​编辑12.5 重构&#xff1a;模块 game_functions 12.5.1 函数 check_events() game_functions.py alien_invasion.py 12.5.2 函数 update_screen() game_functions.py alien_invasion.py 12.6 驾驶飞船 12.6.1 响应…

uniapp websocket的使用和封装

在uniapp中socket分为两种形式&#xff0c;第一种适用于只有一个socket链接&#xff0c;第二种适用于多个socket链接。传送门 这里以socketTask为列子封装 在utils新建一个文件 在你要使用的页面引入&#xff0c;我这是聊天那种&#xff0c;所以我在拿到用户信息之后连接sock…

某电子文档安全管理系统 SQL注入漏洞复现

漏洞介绍 亿赛通电子文档安全管理系统 (简称: CDG)是一款电子文档安全加密软件&#xff0c;该系统利用驱动层透明加密技术&#xff0c;通过对电子文档的加密保护&#xff0c;防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&#xff0c;对电子文档进行全生命周期防护…

【小沐学Unity3d】3ds Max 减面工具汇总

文章目录 1、简介2、“优化”修改器3、“专业优化”修改器4、“多分辨率”修改器5、Polygon Cruncher5.1 工具简介5.2 下载安装5.3 使用测试 6、Simplyon6.1 工具简介6.2 下载安装6.3 使用测试 7、FAQ7.1 在3dmax里面显示点数和面数 结语 1、简介 有几个 3ds Max 修改器可帮助您…

在线更换Proxmox VE超融合集群Ceph OSD磁盘

因为资源紧张的原因&#xff0c;担心一旦关机&#xff0c;虚拟机因为没有空闲的资源而被冻结&#xff0c;以致于不能漂移&#xff0c;导致部分服务停止&#xff0c;只好让机房帮忙热插拔。 幸运的是&#xff0c;插上去能够被系统所识别&#xff08;/dev/sdf就是新插入的硬盘&am…

深入理解 Spring Boot:核心知识与约定大于配置原则

深入理解 Spring Boot&#xff1a;核心知识与约定大于配置原则 简单说一下为什么要有 Spring Boot&#xff1f; 因为 Spring 的缺点。 虽然 Spring 的组件代码是轻量级的&#xff0c;但它的配置却是重量级的(需要大量 XML 配置) 为了减少配置文件&#xff0c;简化开发 Spri…

MaBatis使用`ResultMap`标签手动映射详解使用

文章目录 MaBatis使用ResultMap标签手动映射详解使用1、MyBatis只能自动维护库表”列名“与”属性名“相同时的对应关系&#xff0c;二者不同时无法自动ORM&#xff0c;如下&#xff1a;2、在SQL中使用 as 为查询字段添加列别名&#xff0c;以匹配属性名&#xff1a;但是如果我…

JDBC的使用

目录 JDBC简介 JDBC的使用 JDBC简介 JDBC(Java DataBase Connectivity)是用Java操作数据库的一套API。 sun公司官方定义的一套操作所有关系型数据库的规范&#xff0c;即接口。各个数据库厂商去实现这套接口&#xff0c;提供数据库驱动jar包。我们可以使用这套接口(JDBC)来编…

神经网络:优化器和全连接层

SGD&#xff08;随机梯度下降&#xff09; 随机梯度下降的优化算法在科研和工业界是很常用的。 很多理论和工程问题都能转化成对目标函数进行最小化的数学问题。 举个例子&#xff1a;梯度下降&#xff08;Gradient Descent&#xff09;就好比一个人想从高山上奔跑到山谷最低…

提升数据处理技巧:Python正则表达式的高级应用

提升数据处理技巧&#xff1a;Python正则表达式的高级应用 引言&#xff1a;探索正则表达式的高级应用高级匹配技巧使用正则表达式处理复杂数据正则表达式的性能优化正则表达式的局限和替代方案 引言&#xff1a;探索正则表达式的高级应用 在数据驱动的世界里&#xff0c;有效…

机器学习笔记:支持向量机回归SVR

1 主要思想 主要思路类似于机器学习笔记&#xff1a;支持向量机SVM_支撑向量学习-CSDN博客 和SVM的区别主要有 解法和SVM区别不大&#xff0c;也是KKT 2 和线性回归的区别 对SVR&#xff0c;如果f(x)和y之间的差距小于阈值ε【也即落在两条间隔带之间】&#xff0c;则不计算…

华为交换配置OSPF与BFD联动

实验拓扑 组网需求 如图所示&#xff0c;SW1、SW2和SW3之间运行OSPF&#xff0c;SW1和SW2之间的交换机仅作透传功能。现在需要SW1和SW2能够快速感应它们之间的链路状态&#xff0c;当链路SW1-SW2发生故障时&#xff0c;业务能快速切换到备份链路SW1-SW3-SW2上 配置思路 采用…