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

继续跟着@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();
  });
})();

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】14、DHCP

文章目录 一、概述1.1 好处 二、概念2.1 分配 IP2.2 控制租赁时间2.3 DHCP 的其他网络功能2.4 IP地址范围和用户类别2.5 安全 三、DHCP 消息3.1 DHCP discover message3.2 DHCP offers a message 如果没有 DHCP&#xff0c;IT管理者必须手动选出可用的 ip&#xff0c;这太耗时了…

抖音获客新攻略:如何通过短视频获取更多潜在客户

**一、开篇** **引子**&#xff1a;随着移动互联网的普及&#xff0c;短视频平台已成为人们获取信息、分享生活的重要渠道。抖音作为其中的佼佼者&#xff0c;以其独特的创意和精美的视频内容吸引了大量用户。对于企业而言&#xff0c;如何利用抖音获取潜在客户&#xff0c;已成…

巨擘OpenMMLab将开源综合音频生成项目:Amphion

项目地址&#xff1a;https://github.com/open-mmlab/Amphion TTS: Text-to-Speech Amphion achieves state-of-the-art performance when compared with existing open-source repositories on text-to-speech (TTS) systems. It supports the following models or architect…

网络运维与网络安全 学习笔记2023.12.1

网络运维与网络安全 学习笔记 第三十二天 今日目标 ACL原理与类型、基本ACL配置、高级ACL配置 高级ACL之ICMP、高级ACL之telnet ACL原理与类型 项目背景 为了企业的业务安全&#xff0c;要求不同部门对服务器有不同的权限 PC1不能访问Server PC2允许访问Server 允许其他所…

怎么让百度快速收录,百度SEO收录工具

百度收录对于一个网站的重要性不言而喻。拥有良好的百度收录意味着网站能够更好地被搜索引擎收录&#xff0c;为用户提供更精准的搜索结果。而怎样实现百度快速收录成为了许多网站管理员关注的焦点。 百度收录的重要性 百度是国内最大的搜索引擎之一&#xff0c;拥有数以亿计的…

春秋云镜:CVE-2022-28512

靶标介绍&#xff1a; Fantastic Blog (CMS)是一个绝对出色的博客/文章网络内容管理系统。它使您可以轻松地管理您的网站或博客&#xff0c;它为您提供了广泛的功能来定制您的博客以满足您的需求。它具有强大的功能&#xff0c;您无需接触任何代码即可启动并运行您的博客。 该…

应用于智慧金融的AI边缘计算盒子+AI算法软硬一体化方案

传统金融营业厅存在运营管理模式落后、资源投放不平衡、从业人员培训效果不达预期、客户体验割裂等普遍现象&#xff1b; 部署英码数字金融解决方案&#xff0c;将助力企业从传统金融模式快速向数字金融模式转变&#xff0c;可针对每一个客户定制个性化“一对一”服务&#xff…

Mapper文件夹在resource目录下但是网页报错找不到productMapper.xml文件的解决

报错如下&#xff1a; 我的Mapper文件夹在resourse目录下但是网页报错找不到productMapper.xml。 结构如下&#xff1a;代码如下&#xff1a;<mappers><mapper resource"com/dhu/mapper/productMapper.xml" /> </mappers> 这段代码是在mybatis-co…

Python生成器:优雅而高效的迭代器

Python是一种强大而灵活的编程语言&#xff0c;拥有丰富的标准库和特性功能&#xff0c;其中之一就是 生成器。 生成器 是Python中一种非常实用的特性&#xff0c;它能帮助我们编写高效的代码&#xff0c;尤其是在处理大量数据时&#xff0c;它能够帮助我们更有效地处理迭代任…

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据

ESP32-Web-Server编程- 通过滑动条向 Web 提交数据 概述 上一节我们讲述了通过文本框向 ESP32 发送字符串、数字。有时&#xff0c;我们需要向 ESP32 发送连续的值&#xff0c;这种需求可以通过在网页端实现滑动条来实现。 需求及功能解析 本节演示如何在 ESP32 上部署一个…

使用MD5当做文件的唯一标识,这样安全么?

使用MD5作为文件唯一标识符可靠么&#xff1f; 文章目录 使用MD5作为文件唯一标识符可靠么&#xff1f;什么是MD5&#xff1f;MD5的用途MD5作为文件唯一标识的优劣优势劣势 使用MD5作为文件唯一标识的建议其他文件标识算法结束语 什么是MD5&#xff1f; MD5&#xff08;Messag…

【doccano】文本标注工具——属性级情感分析标注自己的业务数据

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【doccano】文本标注工具——属性级情感分析标注自己的业务数据 1.说明2.前提条件3.doccano创建项目4.添加数据集5.添加标签6.标注数据7.导出数据转换格式 1.说明 2.前提条件 确保doccano已经安装完成 可以参考文…

Elasticsearch:对时间序列数据流进行降采样(downsampling)

降采样提供了一种通过以降低的粒度存储时间序列数据来减少时间序列数据占用的方法。 指标&#xff08;metrics&#xff09;解决方案收集大量随时间增长的时间序列数据。 随着数据老化&#xff0c;它与系统当前状态的相关性越来越小。 降采样过程将固定时间间隔内的文档汇总为单…

测试面试:不明白什么是质量保障

这是我面试经常问的一个问题&#xff0c;很多人并不明白其中的区别。 如上图&#xff0c;整体的质量体系架构图相对简单&#xff0c;主要包含三个部分&#xff1a;愿景&#xff08;高质量交付&#xff0d;快、好&#xff09;、能力&#xff08;中间三层不同的能力&#xff09;和…

kerberos详解

一、介绍 kerberos概述 Kerberos始于20世纪80年代早期麻省理工学院&#xff08;MIT&#xff09;的一个研究项目&#xff0c;是一个网络身份验证系统。Kerberos提供的完整定义是安全的、单点登录的、可信的第三方相互身份验证服务。 认证过程 相关概念 KDC&#xff08;key D…

HTML5 的全局属性 hidden 和 display:none 的关系

目录 1&#xff0c;hidden 和 display:none 的关系2&#xff0c;其他隐藏元素的方式2.1&#xff0c;语意上的隐藏2.2&#xff0c;视觉上的隐藏 1&#xff0c;hidden 和 display:none 的关系 hidden - MDN 参考 一句话总结&#xff1a;hidden 是HTML5 新增的全局布尔属性&…

Python | 轻量ORM框架Peewee的基础使用(增删改查、自动创建模型类、事务装饰器)

文章目录 01 简介02 安装03 自动创建模型类04 基础使用4.1 查询4.2 新增4.3 更新4.4 删除 05 事务 01 简介 在使用python开发的过程中&#xff0c;有时需要一些简单的数据库操作&#xff0c;而Peewee正是理想的选择&#xff0c;它是一个小巧而灵活的 Python ORM&#xff08;对…

Hdoop学习笔记(HDP)-Part.7 安装MySQL

七、安装MySQL mysql主从复制的原理&#xff1a; 1&#xff09;master将数据改变记录到二进制日志&#xff08;binary log&#xff09;中&#xff0c;也即是配置文件log-bin指定的文件&#xff08;这些记录叫做二进制日志事件&#xff0c;binary log events&#xff09;&#…

(六)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)

一、无人机模型简介&#xff1a; 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献&#xff1a; [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、Tiki-taka算法&#xff08;TTA&#xf…

Windows环境 dockertopdesk 部署gitlab

1.在dockertopdesk里搜索 gitlab镜像 (pull)拉取镜像 2.运行镜像到容器 mkdir gitlab gitlab/etc gitlab/log gitlab/opt docker run -id -p 3000:80 -p 9922:22 -v /root/gitlab/etc:/etc/gitlab -v /root/gitlab/log:/var/log/gitlab -v /root/gitlab/opt:/var/opt/gitla…