Echarts大屏可视化_05 折线图的定制开发

news2024/11/18 7:43:48

继续跟着@pink老师学习Echarts相关内容!!!!!!!!!

折线图1

1.引入

折线图选取示例地址   标题没有用到就给他删了

直接引入

注意这里是line下面的chart 获取dom元素一定不要错误

(function () {
  // 实例化对象
  var myChart = echarts.init(document.querySelector(".line .chart"));
  // 指定配置项和数据
  let option = {
    tooltip: {
      trigger: "axis",
    },
    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],
      }
    ],
  };
  // 把配置项给实例对象
  myChart.setOption(option);
})();

 

2.定制开发

1.基本样式修改

有了柱状图的经验,大多数基本的样式直接修改就完事了

(function () {
  // 实例化对象
  var myChart = echarts.init(document.querySelector(".line .chart"));
  // 指定配置项和数据
  let option = {
    // 通过color修改两条线的颜色
    color: ["#00f2f1", "#ed3f35"],
    tooltip: {
      trigger: "axis",
    },
    legend: {
      // 如果series 里面设置了name,就不用写data了
      // 图例颜色
      textStyle: {
        color: "#4c9bfd",
      },
      // 图例距离右边10%  一定要加引号 不能遗漏
      right: "10%",
      // data: ["新增粉丝", "新增游客"],
    },
    grid: {
      top: "20%",
      left: "3%",
      right: "4%",
      bottom: "3%",
      show: true, //显示边框
      borderColor: "#012f4a", //边框颜色
      containLabel: true, //包含刻度文字在内
    },
    xAxis: {
      type: "category",
      boundaryGap: false, //去除轴内间距
      data: [
        "1月",
        "2月",
        "3月",
        "4月",
        "5月",
        "6月",
        "8月",
        "9月",
        "10月",
        "11月",
        "12月",
      ],
      // 去除刻度
      axisTick: {
        show: false,
      },
      // 文字颜色
      axisLabel: {
        color: "#4c9bfd",
      },
      // x轴线的颜色
      axisLine: {
        show: false,
      },
    },
    yAxis: {
      type: "value",
      // 去除刻度
      axisTick: {
        show: false,
      },
      // 文字颜色
      axisLabel: {
        color: "#4c9bfd",
      },
      // 去除轴线
      axisLine: {
        show: false,
      },
      // 分割线颜色
      splitLine: {
        lineStyle: {
          color: "#012f4a",
        },
      },
    },
    series: [
      {
        name: "新增粉丝",
        type: "line",
        data: [24, 40, 101, 134, 90, 230, 210, 203, 120, 230, 210, 120],
        // 折现修饰为圆滑
        smooth: true,
      },
      {
        name: "新增游客",
        type: "line",
        data: [40, 60, 191, 324, 290, 330, 310, 210, 180, 200, 180, 79],
        // 折现修饰为圆滑
        smooth: true,
      },
    ],
  };
  // 把配置项给实例对象
  myChart.setOption(option);

  // 侦听屏幕的变化,让图表跟着变化
  window.addEventListener("resize", function () {
    myChart.resize();
  });
})();

 

2. 折线图Tab切换分析+实现

我们如果想加一个tab切换标签 比如想看 2022 和 2023年的变化 如何做到呢??

样式自己写一下

1.HTML
<h2>折线图-人员变化
  <a href="javascript:;">2022</a>
  <a href="javascript:;">2023</a>
</h2>

数据应该是后端发送过来的,这里编一个。

思路是,点击2022 或者 2023 的时候 将series中的数据  用后端传过来的数据赋值就完成了。后端的格式应该是数组类型的。

2.jQuery获取到点击事件

不要忘记引入jQuery 并且引入jQuery必须在index的上面。 不然会提示$找不到,因为脚本是按照从上往下的顺序加载的。

不知道jQuery的可以看我的jQuery精简教程。

  //tab栏切换效果
  $(".line h2").on("click", "a", function () {
    alert("我点击了");
  });

我们利用索引查看点击的是哪一个 

  //tab栏切换效果
  $(".line h2").on("click", "a", function () {
    // 查看点击的索引号
    console.log($(this).index());
  });

3.构造数据 点击获取数据
  // 假数据 其实应该是后端返回
  var yearData = [
    {
      year: "2022",
      data: [
        [24, 40, 101, 134, 90, 230, 210, 203, 120, 230, 210, 120],
        [40, 60, 191, 324, 290, 330, 310, 210, 180, 200, 180, 79],
      ],
    },
    {
      year: "2023",
      data: [
        [124, 140, 101, 134, 90, 230, 210, 203, 120, 230, 210, 120],
        [140, 160, 191, 324, 290, 330, 310, 210, 180, 200, 180, 79],
      ],
    },
  ];  

//tab栏切换效果
  $(".line h2").on("click", "a", function () {
    // 查看点击的索引号
    // console.log($(this).index());
    //点击a之后 根据当前a的索引号 找到对应的yearData的相关对象
    console.log(yearData[$(this).index()]);
  });

4. 将获得的数据赋值给option中的series

注意 更换完数据并不会达到切换的效果,因为没有调用渲染函数,所以我们应该重新构建一下图表

  //tab栏切换效果
  $(".line h2").on("click", "a", function () {
    // 查看点击的索引号
    // console.log($(this).index());
    //点击a之后 根据当前a的索引号 找到对应的yearData的相关对象
    // console.log(yearData[$(this).index()]);
    option.series[0].data = yearData[$(this).index()].data[0];
    option.series[1].data = yearData[$(this).index()].data[1];
    // 重新渲染
    myChart.setOption(option);
  });

 5.改变原始数据

将原始数据改变,就跟开发调用后端接口一样了。

    series: [
      {
        name: "新增粉丝",
        type: "line",
        data: yearData[0].data[0],
        // 折现修饰为圆滑
        smooth: true,
      },
      {
        name: "新增游客",
        type: "line",
        data: yearData[0].data[1],
        // 折现修饰为圆滑
        smooth: true,
      },
    ],

 

折线图2 

1.引入

Echarts示例地址  从这个网站复制数据

// 折线图2 模块制作
(function () {
  // 实例化对象
  var myChart = echarts.init(document.querySelector(".line2 .chart"));
  // 指定配置项和数据
  var option = {
    tooltip: {
      trigger: "axis",
    },
    legend: {
      data: ["Email", "Union Ads", "Video Ads", "Direct", "Search Engine"],
    },
    grid: {
      left: "3%",
      right: "4%",
      bottom: "3%",
      containLabel: true,
    },
    xAxis: [
      {
        type: "category",
        boundaryGap: false,
        data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
      },
    ],
    yAxis: [
      {
        type: "value",
      },
    ],
    series: [
      {
        name: "Email",
        type: "line",
        stack: "Total",
        areaStyle: {},
        emphasis: {
          focus: "series",
        },
        data: [120, 132, 101, 134, 90, 230, 210],
      },
      {
        name: "Union Ads",
        type: "line",
        stack: "Total",
        areaStyle: {},
        emphasis: {
          focus: "series",
        },
        data: [220, 182, 191, 234, 290, 330, 310],
      },
    ],
  };
  // 把配置项给实例对象
  myChart.setOption(option);
})();

 

2.定制开发

1.基本样式修改

// 折线图2 模块制作
(function () {
  // 实例化对象
  var myChart = echarts.init(document.querySelector(".line2 .chart"));
  // 指定配置项和数据
  var option = {
    tooltip: {
      trigger: "axis",
    },
    legend: {
      // 位置调整
      top: "0%",
      data: ["Email", "Union Ads", "Video Ads", "Direct", "Search Engine"],
      // 修改图例组件的文字颜色
      textStyle: {
        color: "rgba(255, 255, 255, .5)",
        fontSize: 12,
      },
    },
    // 调整边距
    grid: {
      top: "30",
      left: "10",
      right: "10",
      bottom: "10",
      containLabel: true,
    },
    xAxis: [
      {
        type: "category",
        boundaryGap: false,
        data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
        // 文本颜色
        axisLabel: {
          textStyle: {
            color: "rgba(255, 255, 255, .6)",
            fontSize: 12,
          },
        },
        // x轴线的颜色
        axisLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .2)",
          },
        },
      },
    ],
    yAxis: [
      {
        type: "value",
        // 不显示刻度
        axisTick: { show: false },
        // x轴线的颜色
        axisLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .1)",
          },
        },
        // 文本颜色
        axisLabel: {
          textStyle: {
            color: "rgba(255, 255, 255, .6)",
            fontSize: 12,
          },
        },
        // 分割线颜色
        splitLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .1)",
          },
        },
      },
    ],
    series: [
      {
        name: "Email",
        type: "line",
        stack: "Total",
        areaStyle: {},
        emphasis: {
          focus: "series",
        },
        data: [120, 132, 101, 134, 90, 230, 210],
      },
      {
        name: "Union Ads",
        type: "line",
        stack: "Total",
        areaStyle: {},
        emphasis: {
          focus: "series",
        },
        data: [220, 182, 191, 234, 290, 330, 310],
      },
    ],
  };
  // 把配置项给实例对象
  myChart.setOption(option);
})();

2. 修改两个线模块配置

1.填充颜色设置

建议直接复制代码

        // 填充区域
        areaStyle: {
          // 渐变色,只需要复制即可
          color: new echarts.graphic.LinearGradient(
            0,
            0,
            0,
            1,
            [
              {
                offset: 0,
                color: "rgba(1, 132, 213, 0.4)", // 渐变色的起始颜色
              },
              {
                offset: 0.8,
                color: "rgba(1, 132, 213, 0.1)", // 渐变线的结束颜色
              },
            ],
            false
          ),
          shadowColor: "rgba(0, 0, 0, 0.1)",
        },

2.拐点配置定制+更换数据
// 折线图2 模块制作
(function () {
  // 实例化对象
  var myChart = echarts.init(document.querySelector(".line2 .chart"));
  // 指定配置项和数据
  var option = {
    tooltip: {
      trigger: "axis",
    },
    legend: {
      // 位置调整
      top: "0%",
      data: ["Email", "Union Ads", "Video Ads", "Direct", "Search Engine"],
      // 修改图例组件的文字颜色
      textStyle: {
        color: "rgba(255, 255, 255, .5)",
        fontSize: 12,
      },
    },
    // 调整边距
    grid: {
      top: "30",
      left: "10",
      right: "10",
      bottom: "10",
      containLabel: true,
    },
    xAxis: [
      {
        type: "category",
        boundaryGap: false,
        data: [
          "01",
          "02",
          "03",
          "04",
          "05",
          "06",
          "07",
          "08",
          "09",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "18",
          "19",
          "20",
          "21",
          "22",
          "23",
          "24",
          "25",
          "26",
          "27",
          "28",
          "29",
          "30",
        ],
        // 文本颜色
        axisLabel: {
          textStyle: {
            color: "rgba(255, 255, 255, .6)",
            fontSize: 12,
          },
        },
        // x轴线的颜色
        axisLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .2)",
          },
        },
      },
    ],
    yAxis: [
      {
        type: "value",
        // 不显示刻度
        axisTick: { show: false },
        // x轴线的颜色
        axisLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .1)",
          },
        },
        // 文本颜色
        axisLabel: {
          textStyle: {
            color: "rgba(255, 255, 255, .6)",
            fontSize: 12,
          },
        },
        // 分割线颜色
        splitLine: {
          lineStyle: {
            color: "rgba(255, 255, 255, .1)",
          },
        },
      },
    ],
    series: [
      {
        name: "Email",
        type: "line",
        smooth: true, //折线圆滑
        // 单独修改线的样式
        lineStyle: {
          color: "#0184d5",
          width: 2,
        },
        // 填充区域
        areaStyle: {
          // 渐变色,只需要复制即可
          color: new echarts.graphic.LinearGradient(
            0,
            0,
            0,
            1,
            [
              {
                offset: 0,
                color: "rgba(1, 132, 213, 0.4)", // 渐变色的起始颜色
              },
              {
                offset: 0.8,
                color: "rgba(1, 132, 213, 0.1)", // 渐变线的结束颜色
              },
            ],
            false
          ),
          shadowColor: "rgba(0, 0, 0, 0.1)",
        },
        // 拐点设置为小圆点
        symbol: "circle",
        symbolSize: 5,
        showSymbol: false, //开始不显示拐点,鼠标经过显示
        // 设置拐点颜色以及边框
        itemStyle: {
          color: "#0184d5",
          borderColor: "rgba(221, 220, 107, .1)",
          borderWidth: 12,
        },
        emphasis: {
          focus: "series",
        },
        data: [
          30, 40, 30, 40, 30, 40, 30, 60, 20, 40, 20, 40, 30, 40, 30, 40, 30,
          40, 30, 60, 20, 40, 20, 40, 30, 60, 20, 40, 20, 40,
        ],
      },
      {
        name: "Union Ads",
        type: "line",
        smooth: true, //折线圆滑
        // 单独修改线的样式
        lineStyle: {
          color: "#0184d5",
          width: 2,
        },
        // 填充区域
        areaStyle: {
          // 渐变色,只需要复制即可
          color: new echarts.graphic.LinearGradient(
            0,
            0,
            0,
            1,
            [
              {
                offset: 0,
                color: "rgba(1, 216, 135, 0.4)", // 渐变色的起始颜色
              },
              {
                offset: 0.8,
                color: "rgba(1, 216, 135, 0.1)", // 渐变线的结束颜色
              },
            ],
            false
          ),
          shadowColor: "rgba(0, 0, 0, 0.1)",
        },
        // 拐点设置为小圆点
        symbol: "circle",
        symbolSize: 5,
        showSymbol: false, //开始不显示拐点,鼠标经过显示
        // 设置拐点颜色以及边框
        itemStyle: {
          color: "#00d887",
          borderColor: "rgba(221, 220, 107, .1)",
          borderWidth: 12,
        },
        emphasis: {
          focus: "series",
        },
        data: [
          50, 30, 50, 60, 10, 50, 30, 50, 60, 40, 60, 40, 80, 30, 50, 60, 10,
          50, 30, 70, 20, 50, 10, 40, 50, 30, 70, 20, 50, 10, 40,
        ],
      },
    ],
  };
  // 把配置项给实例对象
  myChart.setOption(option);

  // 侦听屏幕的变化,让图表跟着变化
  window.addEventListener("resize", function () {
    myChart.resize();
  });
})();

 

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

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

相关文章

java餐饮刀削面快餐店点餐服务系统springboot+jsp

网上点餐省去了客户很多不必要的时间和麻烦&#xff0c;给商家带来更多利益。同时&#xff0c;网上点餐可以辅助餐饮企业营销。传统的点餐是需要配备一个专业的服务员负责菜品介绍并记录顾客点单&#xff0c;确认后上交至后台厨房&#xff0c;厨房根据菜品种类安排做菜顺序最终…

Spring 多数据源搭建

目录 前言 正文 1.Druid 介绍和使用 2.其他多数据源解决方案 总结 前言 对于复杂的业务和项目&#xff0c;可能在一个单体项目中存在需要连接多个数据库的情况。这时&#xff0c;就会使用到多数据源&#xff0c;实际中遇到的可能性比较大。 正文 如果一个项目中需要连…

Unity Image - 镜像

1、为什么要使用镜像 在游戏开发过程中&#xff0c;我们经常会为了节省 美术图片资源大小&#xff0c;美术会将两边相同的图片进行切一半来处理。如下所示一个按钮 需要 400 * 236&#xff0c;然而美术只需要切一张 74*236的大小就可以了。这样一来图集就可以容纳更多的图片。…

Centos7使用阿里云镜像加速服务安装Docker

文章目录 一、前提说明二、安装docker1、创建docker文件夹2、安装所需的软件包3、设置Docker仓库4、安装docker5、启动验证使用阿里云镜像加速服务 三、卸载docker 一、前提说明 需要先安装好虚拟机&#xff0c;可以查看这篇https://blog.csdn.net/qq_36433289/article/detail…

Docker的常用基本命令(基础命令)

文章目录 1. Docker简介2. Docker环境安装Linux安装 3. 配置镜像加速4. Docker镜像常用命令列出镜像列表搜索镜像下载镜像查看镜像版本删除镜像构建镜像推送镜像 5. Docker容器常用命令新建并启动容器列出容器停止容器启动容器进入容器删除容器&#xff08;慎用&#xff09;查看…

Java-easyExcel入门教程

文章目录 前言一、简介二、使用步骤1. 引入依赖2. 前提准备3. 实现导出4. 实现导入 三、我所遇到的问题四、总结 前言 在日常开发中经常会遇到一些 excel 表导入导出的需求&#xff0c;以往会使用 POI 封装成工具类来处理这些导入导出的需求&#xff0c;但是 POI 在导入大文件…

WSL2+tensorflow-gpu 2.3.0 C++ 源码编译

wsl2已有gcc 版本为9.4.0&#xff0c;但tensorflow2.3.0需对应gcc7.3.1 tensorflow与cuda cudnn python bazel gcc版本对应关系 故需下载一个低版本的gcc&#xff0c;但同时还想保留较高版本的gcc&#xff0c;那么参考文章&#xff1a;深度学习环境搭建(二): Ubuntu不同版本g…

【笔记】2023最新Python安装教程(Windows 11)

&#x1f388;欢迎加群交流&#xff08;备注&#xff1a;csdn&#xff09;&#x1f388; ✨✨✨https://ling71.cn/hmf.jpg✨✨✨ &#x1f913;前言 作为一名经验丰富的CV工程师&#xff0c;今天我将带大家在全新的Windows 11系统上安装Python。无论你是编程新手还是老手&…

HBase安装配置:一键自动安装配置

使用shell脚本一键下载、安装、配置HBase&#xff08;单机版&#xff09; 1. 把下面的脚本复制保存为/tmp/install_hbase.sh文件 #!/bin/bash# 安装之前确保安装目录有写入权限&#xff0c;若没有&#xff0c;自行增加 # 安装版本 zk_version"2.4.8" # 安装目录 zk…

5G承载网和大客户承载的演进

文章目录 移动4/5G承载网联通和电信4/5G承载网M-OTN&#xff08;Metro-optimized OTN&#xff09;&#xff0c;城域型光传送网PeOTN&#xff08;packet enhanced optical transport network&#xff09;&#xff0c;分组增强型OTN板卡增强型PeOTN集中交叉型PeOTN VC-OTN&#x…

如何从 Android 手机恢复已删除的视频

您是否曾经丢失过手机中的任何数据&#xff1f;如今&#xff0c;由于 Android 上的应用程序崩溃、根进程停止、Android 更新失败等等&#xff0c;数据丢失很普遍。错误删除是丢失视频、录音和音乐副本的另一种可能的方式。 丢失包含有关新完成的项目的重要信息的视频或婚礼、周…

Day47力扣打卡

打卡记录 多边形三角剖分的最低得分&#xff08;区间DP&#xff09; 链接 class Solution:def minScoreTriangulation(self, values: List[int]) -> int:n len(values)f [[0] * n for _ in range(n)]for i in range(n - 3, -1, -1):for j in range(i 2, n):f[i][j] mi…

Linux 系统是如何收发网络包的?

一、Linux 网络协议栈 如下是TCP/IP四层网络模型&#xff0c;实际上Linux 网络协议栈与它相似 下图是Linux 网络协议栈 二、Linux 接收网络包的流程 1.网卡是计算机里的一个硬件&#xff0c;专门负责接收和发送网络包&#xff0c;当网卡接收到一个网络包后&#xff0c;会通过…

如何快速了解一家公司?

在炒股过程中&#xff0c;我们想要了解一家公司是否具有投资价值&#xff0c;需要查看和阅读很多公司的相关资料。股民们自行去查询往往会花费很多的时间精力&#xff0c;所以专业的炒股软件一般都会给股民提供这些现成的资料。 在金斗云智投APP内&#xff0c;进入到个股详情页…

SCA技术进阶系列(四):DSDX SBOM供应链安全应用实践

一、SBOM的发展趋势 数字时代&#xff0c;软件已经成为维持生产生活正常运行的必备要素之一。随着容器、中间件、微服务、 DevOps等技术理念的演进&#xff0c;软件行业快速发展&#xff0c;但同时带来软件设计开发复杂度不断提升&#xff0c;软件供应链愈发复杂&#xff0c;软…

28.线段树与树状数组基础

一、线段树 1.区间问题 线段树是一种在算法竞赛中常用来维护区间的数据结构。它思想非常简单&#xff0c;就是借助二叉树的结构进行分治&#xff0c;但它的功能却非常强大&#xff0c;因此在很多类型的题目中都有它的变种&#xff0c;很多题目都需要以线段树为基础进行发展。…

Windows server 2016 FTP服务器的搭建

FTP&#xff08;File Transfer Protocol&#xff09;是一个用来在两台计算机之间传输文件的通信协议。这两台计算机中&#xff0c;一台是FTP服务器&#xff0c;另一台是FTP 客户端。 1.安装FTP服务与建立FTP站点 1.1 打开服务器管理器——单击仪表盘的添加角色和功能 1.2 持续…

Gavin Wood:财库保守主义偏离了初心,应探索 Fellowship 等更有效的资金部署机制

波卡创始人 Gavin Wood 博士最近接受了 The Kusamarian 的采访&#xff0c;分享了他的过往经历、对治理的看法&#xff0c;还聊到了 AI、以太坊、女巫攻击、财库等话题。本文整理自 PolkaWorld 对专访编译的部分内容&#xff0c;主要包含了 Gavin 对治理、财库提案、生态资金分…

听GPT 讲Rust源代码--src/tools(4)

题图由AI生成 File: rust/src/tools/rust-analyzer/crates/hir-ty/src/interner.rs 在Rust源代码中&#xff0c;rust/src/tools/rust-analyzer/crates/hir-ty/src/interner.rs这个文件是rust-analyzer工具的一部分&#xff0c;它定义了用于将类型系统中的实体进行唯一标识和共享…

15.oracle的 listagg() WITHIN GROUP () 行转列函数使用

1.使用条件查询 查询部门为20的员工列表 -- 查询部门为20的员工列表 SELECT t.DEPTNO,t.ENAME FROM SCOTT.EMP t where t.DEPTNO 20 ; 效果&#xff1a; 2.使用 listagg() WITHIN GROUP () 将多行合并成一行(比较常用) SELECT T .DEPTNO, listagg (T .ENAME, ,) WIT…