数据可视化工具 - ECharts折线图的编写

news2024/11/17 15:32:21

1 官网找到类似实例, 适当分析,并且引入到HTML页面中

在这里插入图片描述

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.js"></script>
</head>
<style>
</style>
<body>
<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
<div id="main" style="width: 600px;height:400px;margin: 0 auto;"></div>
<script type="text/javascript">
    var myColor = ["#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
    // 1. 实例化对象
    var myChart = echarts.init(document.getElementById("main"));
    // 2. 指定配置和数据
    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);
</script>
</body>
</html>

2 根据需求定制图表

2.1 修改折线图大小,显示边框设置颜色,显示刻度标签

        grid: {
            top: '20%',
            left: '3%',
            right: '4%',
            bottom: '3%',
            show: true,// 显示边框
            borderColor: '#012f4a',// 边框颜色
            containLabel: true // 包含刻度文字在内
        }

2.2 修改图例组件中的文字颜色 #4c9bfd, 距离右侧 right 为 10%

 // 图例组件
    legend: {
      textStyle: {
        color: '#4c9bfd' // 图例文字颜色
      },
      right: '10%' // 距离右边10%
    },

2.3 x轴相关配置

  • 刻度去除
  • x轴刻度标签字体颜色:#4c9bfd
  • 剔除x坐标轴线颜色(将来使用Y轴分割线)
  • 轴两端是不需要内间距 boundaryGap
    xAxis: {
      type: 'category',
      data: ["周一", "周二"],
	  axisTick: {
         show: false // 去除刻度线
       },
       axisLabel: {
         color: '#4c9bfd' // 文本颜色
       },
       axisLine: {
         show: false // 去除轴线
       },
       boundaryGap: false  // 去除轴内间距
    },

2.4 y轴的定制

  • 刻度去除
  • 字体颜色:#4c9bfd
  • 分割线颜色:#012f4a
    yAxis: {
      type: 'value',
      axisTick: {
        show: false  // 去除刻度
      },
      axisLabel: {
        color: '#4c9bfd' // 文字颜色
      },
      splitLine: {
        lineStyle: {
          color: '#012f4a' // 分割线颜色
        }
      }
    },

2.5 两条线形图定制

  • 颜色分别:#00f2f1 #ed3f35
  • 把折线修饰为圆滑 series 数据中添加 smooth 为 true
    color: ['#00f2f1', '#ed3f35'],
	series: [{
      name:'新增粉丝',
      data: [820, 932, 901, 934, 1290, 1330, 1320],
      type: 'line',
      // 折线修饰为圆滑
      smooth: true,
      },
      {
      name:'新增游客',
      data: [100, 331, 200, 123, 233, 543, 400],
      type: 'line',
      smooth: true,
    }]

2.6 数据配置

// x轴的文字
xAxis: {
  type: 'category',
  data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
// 图标数据
    series: [{
      name:'新增粉丝',
      data:  [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
      type: 'line',
      smooth: true
    },{
      name:'新增游客',
      data: [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79],     
      type: 'line',
      smooth: true
      }
    }]

2.7 新增需求 点击 2020年 2021年 数据发生变化

以下是后台送过来数据(ajax请求过来的)

 var yearData = [
      {
        year: '2020',  // 年份
        data: [  // 两个数组是因为有两条线
             [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
             [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
          ]
      },
      {
        year: '2021',  // 年份
        data: [  // 两个数组是因为有两条线
             [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
     		[143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
          ]
      }
     ];

tab栏切换事件

  • 点击2020按钮 需要把 series 第一个对象里面的data 换成 2020年对象里面data[0]
  • 点击2020按钮 需要把 series 第二个对象里面的data 换成 2020年对象里面data[1]
  • 2021 按钮同样道理
    // 5.点击切换效果
    $(".line h2").on("click", "a", function () {
        var obj = yearData[$(this).index()];
        option.series[0].data = obj.data[0];
        option.series[1].data = obj.data[1];
        // 需要重新渲染
        myChart.setOption(option);
    });
// 折线图1模块制作
(function() {
  var yearData = [
    {
      year: "2020", // 年份
      data: [
        // 两个数组是因为有两条线
        [24, 40, 101, 134, 90, 230, 210, 230, 120, 230, 210, 120],
        [40, 64, 191, 324, 290, 330, 310, 213, 180, 200, 180, 79]
      ]
    },
    {
      year: "2021", // 年份
      data: [
        // 两个数组是因为有两条线
        [123, 175, 112, 197, 121, 67, 98, 21, 43, 64, 76, 38],
        [143, 131, 165, 123, 178, 21, 82, 64, 43, 60, 19, 34]
      ]
    }
  ];
  // 1. 实例化对象
  var myChart = echarts.init(document.querySelector(".line .chart"));
  // 2.指定配置
  var option = {
    // 通过这个color修改两条线的颜色
    color: ["#00f2f1", "#ed3f35"],
    tooltip: {
      trigger: "axis"
    },
    legend: {
      // 如果series 对象有name 值,则 legend可以不用写data
      // 修改图例组件 文字颜色
      textStyle: {
        color: "#4c9bfd"
      },
      // 这个10% 必须加引号
      right: "10%"
    },
    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月",
        "7月",
        "8月",
        "9月",
        "10月",
        "11月",
        "12月"
      ],
      axisTick: {
        show: false // 去除刻度线
      },
      axisLabel: {
        color: "#4c9bfd" // 文本颜色
      },
      axisLine: {
        show: false // 去除轴线
      }
    },
    yAxis: {
      type: "value",
      axisTick: {
        show: false // 去除刻度线
      },
      axisLabel: {
        color: "#4c9bfd" // 文本颜色
      },
      axisLine: {
        show: false // 去除轴线
      },
      splitLine: {
        lineStyle: {
          color: "#012f4a" // 分割线颜色
        }
      }
    },
    series: [
      {
        name: "新增粉丝",
        type: "line",
        // true 可以让我们的折线显示带有弧度
        smooth: true,
        data: yearData[0].data[0]
      },
      {
        name: "新增游客",
        type: "line",
        smooth: true,
        data: yearData[0].data[1]
      }
    ]
  };

  // 3. 把配置给实例对象
  myChart.setOption(option);
  // 4. 让图表跟随屏幕自动的去适应
  window.addEventListener("resize", function() {
    myChart.resize();
  });

  // 5.点击切换效果
  $(".line h2").on("click", "a", function() {
    var obj = yearData[$(this).index()];
    option.series[0].data = obj.data[0];
    option.series[1].data = obj.data[1];
    // 需要重新渲染
    myChart.setOption(option);
  });
})();

3 折线图 - 播放量模块制作

3.1 官网找到类似实例, 适当分析,并且引入到HTML页面中

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>ECharts</title>
    <!-- 引入刚刚下载的 ECharts 文件 -->
    <script src="echarts.js"></script>
</head>
<style>
</style>
<body>
<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
<div id="main" style="width: 600px;height:400px;margin: 0 auto;"></div>
<script type="text/javascript">
    // 1. 实例化对象
    var myChart = echarts.init(document.getElementById("main"));
    // 2. 指定配置和数据
    option = {
        tooltip: {
            trigger: 'axis',
        },
        legend: {
        },
        toolbox: {
            feature: {
            }
        },
        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);
</script>
</body>
</html>

在这里插入图片描述

3.2 根据需求定制图表

3.2.1 更换图例组件文字颜色 rgba(255,255,255,.5) 文字大小为12

        legend: {
            top: "0%",
            textStyle: {
                color: "red",
                fontSize: "12"
            }
        },

3.2.2 修改图表大小

grid: {
      left: "10",
      top: "30",
      right: "10",
      bottom: "10",
      containLabel: true
    },

3.2.3 修改x轴相关配置

  • 修改文本颜色为rgba(255,255,255,.6) 文字大小为 12
  • x轴线的颜色为 rgba(255,255,255,.2)
        xAxis: [
            {
                type: 'category',
                boundaryGap: false,
                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
                // 文本颜色为rgba(255,255,255,.6)  文字大小为 12
                axisLabel: {
                    textStyle: {
                        color: "red",
                        fontSize: 12
                    }
                },
                // x轴线的颜色为   rgba(255,255,255,.2)
                axisLine: {
                    lineStyle: {
                        color: "red"
                    }
                },
            },
        ],

3.2.4 修改y轴的相关配置

        yAxis: [
            {
                type: 'value',
                axisTick: {show: false},
                axisLine: {
                    lineStyle: {
                        color: "green"
                    }
                },
                axisLabel: {
                    textStyle: {
                        color: "green",
                        fontSize: 12
                    }
                },
                // 修改分割线的颜色
                splitLine: {
                    lineStyle: {
                        color: "green"
                    }
                }

            }
        ],

3.2.5 修改两个线模块配置(注意在series 里面定制)

  • 线是圆滑
  • 单独修改线的样式
  • 填充区域
  • 设置拐点 小圆点 拐点大小 设置拐点颜色以及边框
  • 开始不显示拐点, 鼠标经过显示
       //第一条 线是圆滑
       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: 8,
        // 设置拐点颜色以及边框
       itemStyle: {
            color: "#0184d5",
            borderColor: "rgba(221, 220, 107, .1)",
            borderWidth: 12
        },
        // 开始不显示拐点, 鼠标经过显示
        showSymbol: false,

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

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

相关文章

HTML与JavaScript联动

目录 一、数组&#xff08;增删查改&#xff09; 1.创建数组 2. 增加数组元素 3.删除数组中的元素 4.查看数组元素 5.修改数组元素 二、创建方法 1.函数 2.作用域 3.作用域链 三、对象 1.使用 字面量 创建对象 [常用] 2.使用 new Object 创建对象 四、JavaScript…

thinkphp报错 in_array() expects parameter 2 to be array, object given

我的问题是 foreach ($books as $k > $v) { if (in_array($v[id], $book_id)) { //这个地方报错的 $books[$k][check] checked; }else { $books[$k][check] ; } } 这个问题是因为 你的变…

5.9-5.10学习总结

项目分析&#xff1a; 1.用户共有的&#xff1a; 登录&#xff0c;注册&#xff0c;忘记密码&#xff0c;个人资料&#xff0c;修改密码 个人资料&#xff1a;包括生日&#xff08;日期栏选择&#xff09;&#xff0c;手机号&#xff0c;邮箱&#xff0c;学号&#xff0c;姓…

网络路径下倾斜模型生产流程-空三计算,像控刺点

网络路径下倾斜模型生产流程-空三计算&#xff0c;像控刺点 1.新建工程 ①新建工程文件夹 确定本机的网络路径&#xff0c;如演示机为192.168.100.10 在网络路径下新建工程文件夹&#xff0c;如//192.168.100.10/e/YNPE27 在工程文件夹下&#xff0c;新建工程存储文件夹CC和照片…

docker安装与配置docker镜像加速器

文章目录 前言一、准备工作二、docker安装三、配置镜像加速器1.配置中科大镜像加速器2.配置阿里云镜像加速器 前言 我真的受不了虚拟机了&#xff0c;我电脑上有9个虚拟机&#xff0c;占了132G&#xff01;&#xff01;&#xff01;我还不敢随便删&#xff0c;怕到时候要用。。…

聚观早报 | 菜鸟回应明年赴港 IPO;谷歌即将发布最新 AI 大模型

今日要闻&#xff1a;菜鸟回应明年赴港 IPO&#xff1b;谷歌即将发布最新 AI 大模型&#xff1b;中国移动推出周杰伦数字人&#xff1b;“老头乐”销量冠军雷丁汽车申请破产&#xff1b;网信部门工作组进驻斗鱼平台 菜鸟回应明年赴港 IPO 近日&#xff0c;有消息称&#xff0c…

跟着我学 AI丨ChatGPT 详解

随着人工智能的发展&#xff0c;聊天机器人成为了一个备受关注的领域。而ChatGPT作为其中的佼佼者&#xff0c;其功能和技术水平也越来越受到人们的关注。那么&#xff0c;什么是ChatGPT&#xff1f;它又有哪些优点和限制呢&#xff1f; ChatGPT是一款基于自然语言处理技术开发…

zed2i相机内参标定

参考&#xff1a; https://blog.csdn.net/yanpeng_love/article/details/107166922 https://blog.csdn.net/weixin_41954990/article/details/127928852 参考以上连接先安装kalibr。 注意&#xff1a; python包装不上&#xff0c;换成&#xff1a;pip install出现pyx找不到…

React JSX

文章目录 React JSX使用 JSX独立文件JavaScript 表达式样式注释数组HTML 标签 vs. React 组件 React JSX React 使用 JSX 来替代常规的 JavaScript。 JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。 我们不需要一定使用 JSX&#xff0c;但它有以下优点&#xff1a; JSX…

Linux共享库、动态库详解

目录 一.静态库 二.动态库 三.静态库的制作与使用 四.动态库的制作与使用 在日常编程中我们不想让别人看到我们写的源码&#xff0c;但还需要发给对方使用&#xff0c;在这种情况下我们引入了静态库动态库&#xff0c;让对方用调库的方式也可以实现我们写的代码的功能&…

2023天津Web前端开发培训就业排行榜(你对Web前端工程师了解多少)

2023天津Web前端开发培训就业排行榜。前端开发技术在多个开发领域得到了广泛的应用&#xff0c;现在对前端开发技术人员的需求越来越大&#xff0c;没有基础要学好前端开发技术知识&#xff0c;更需要系统的学习。今天给大家分享一下Web前端程序员&#xff0c;0基础学前端&…

React 安装

文章目录 React 安装使用实例实例解析 通过 npm 使用 React使用 create-react-app 快速构建 React 开发环境 React 安装 React 可以直接下载使用&#xff0c;下载包中也提供了很多学习的实例。 你也可以直接使用 BootCDN 的 React CDN 库&#xff0c;地址如下&#xff1a; &l…

matlab实现BP神经网络(完整DEMO)

本站原创文章&#xff0c;转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com 目录 一、BP神经网络Demo代码 1.1 代码整体思路 1.2 BP神经网络Demo代码 二、运行结果 2.1 拟合曲线 2.2训练误差与预测误差 三、相关文章 3.1-BP的入门学习目录&#xff1a;老饼…

中大型连锁企业如何以数字化驱动业务创新增长

随着互联网、IT技术的发展&#xff0c;数字化转型逐渐成为时代发展的浪潮&#xff0c;对于中大型连锁企业而言&#xff0c;抓住机遇、创新增长是企业发展的关键。面对新的市场形势&#xff0c;企业需要让线上数据流动起来&#xff0c;解决业务数据的运力和流通问题&#xff0c;…

第6章 静态代理

第6章 静态代理 把所有静态资源的访问改为访问nginx&#xff0c;而不是访问tomcat&#xff0c;这种方式叫静态代理。因为nginx更擅长于静态资源的处理&#xff0c;性能更好&#xff0c;效率更高。 ​ 所以在实际应用中&#xff0c;我们将静态资源比如图片、css、html、js等交…

什么是企业内容管理?

为什么出现企业内容管理&#xff1f; 在数字经济的宏观背景下&#xff0c;企业建立了各种应用系统以满足企业各业务的管理需求&#xff0c;这些系统每天都在产生大量的数据和信息资源&#xff0c;但在企业实践中存在很多数据或资源无法被应用系统获取、处理和共享。 比如发票…

电力需求侧管理系统是什么?

摘要&#xff1a;电力是国民经济和居民生活的命脉&#xff0c;为贯彻落实国家对于节能减排工作的总体部署&#xff0c;深入推进电力需求侧管理工作、本文从电力需求侧能效管理平台所要实现的功能与应用信息技术两个方面&#xff0c;着重介绍平台研究建立的节电效益计算分析模型…

CSO面对面丨对话海通证券,探讨数字金融行业安全运营

新技术的涌现带动了金融行业的数字化转型发展&#xff0c;同时也带来了更多安全挑战。一方面&#xff0c;金融科技大量采用新技术实现业务创新的同时&#xff0c;也给网络安全带来了更多隐性风险。另一方面&#xff0c;金融行业数字化转型的进一步普及&#xff0c;大量个人隐私…

Express 创建和使用render

1 创建项目 npm install -g express-generator express -e myapp //创建myapp项目npm i //安装依赖npm i nodemon -D //安装nodemon 修改package.json "scripts": {"start": "node ./bin/www","dev": "nodemon ./bin/www&quo…

接入sentry安装@sentry/webpack-plugin依赖报错(附遇到的其他小问题)

背景 项目需要接入sentry&#xff0c;使用的是vue2 vue-cli构建的&#xff0c;那么需要使用webpack构建的方式 见sentry官方文档 问题和尝试思路 根据文档安装sentry/webpack-plugin依赖的时候一直失败 出现两种报错 第一种&#xff1a;下载安装包https://downloads.sent…