数据可视化-ECharts Html项目实战(1)

news2024/12/25 9:30:07

 在之前的文章中,我们学习了如何安装Visual Studio Code并下载插件,想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

安装 Visual Studio Codehttps://blog.csdn.net/qq_49513817/article/details/136442924?spm=1001.2014.3001.5501

今天的文章,我会从基础案例开始,带着大家在VS code中绘制ECharts里的折线图、条形图与柱形图,并实现动态触发以及最大、最小、平均值。

目录

一、环境准备

二、项目实战

1.柱形图

2.条形图

3.折线图

三、动态触发、最大最小平均值

动态触发:

最大最小平均值:

拓展、什么是ECharts

1、ECharts

2、ECharts的历史

3、ECharts的特点

一、环境准备

首先我们打开VS code补充一个插件,实现实时效果预览

 点击红色箭头指示方向,实现实时预览

安装完成后,新建一个文件夹,里面新建两个文件一个名为js,一个为css。再新建一个文本文档,名称自取,选择语言为html。

再往js文件夹里导入js文件 (文章附件可下载)

 现在我们就可以开始进行项目实战了

如果环境没有准备好,也是没关系的,在这里,我们也是可以进行练习的:echarts官网https://echarts.apache.org/examples/zh/editor.html?c=line-simple

二、项目实战

 其实编写一个可视化视图,大致就分为五个步骤

  步骤1:引入echarts.js文件
  步骤2:准备一个呈现图表的盒子
  步骤3:初始化echarts实例对象
  步骤4:准备配置项
  步骤5:将配置项设置给echarts实例对象   

在新建的HTML文档里,将代码输入到自己的文档中(标点符号不要敲错)

我给出的代码里都有详细注释,根据注释理解每一段代码的意义。

1.柱形图

<!DOCTYPE html>
<html lang="en">//这两行定义了文档类型和文档的语言,这里是英文(en)

<head>
  <meta charset="UTF-8">//设置文档的字符编码为UTF-8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">//设置视口(viewport)的元信息,使页面能够响应式地适应不同设备的屏幕大小。
  <meta http-equiv="X-UA-Compatible" content="ie=edge">//这是一个针对Internet Explorer的兼容性设置,使页面以最高模式(edge mode)渲染。
  <title>Document</title>//设置网页的标题
  <!-- 步骤1:引入echarts.js文件 -->
  <script src="js/echarts.min.js"></script>
  <!-- 
  步骤1:引入echarts.js文件
  步骤2:准备一个呈现图表的盒子
  步骤3:初始化echarts实例对象
  步骤4:准备配置项
  步骤5:将配置项设置给echarts实例对象
   -->
</head>

<body>
  <!-- 步骤2:准备一个呈现图表的盒子 -->
  <div style="width: 600px;height: 400px"></div>
  <script>
    // 步骤3:初始化echarts实例对象
    // 参数, dom,决定图表最终呈现的位置
    var mCharts = echarts.init(document.querySelector('div'))
    // 步骤4:准备配置项
    var option = {
      xAxis: {
        type: 'category',
        data: ['小明', '小红', '小王']
      },
      yAxis: {
        type: 'value'
      },
      series: [
        {
          name: '语文',
          type: 'bar',//设置类型为柱状图
          data: [70, 92, 87]
        }
      ]
    }//定义了图表的配置项。这里配置了一个简单的条形图,其中X轴是类别轴,显示了三个名字('小明', '小红', '小王');Y轴是数值轴;系列数据是一个名为'语文'的条形图,包含了三个分数。
    // 步骤5:将配置项设置给echarts实例对象
    mCharts.setOption(option)//将之前定义的配置项option设置给ECharts实例mCharts
  </script>
</body>

效果:

2.条形图

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="js/echarts.js"></script>
</head>

<body>

    <div id="main" style="width: 800px; height: 400px"></div>
    <script type="text/javascript">

        var myChart = echarts.init(document.getElementById("main"));

        var option = {
            title: {
                text: '3班成绩表',
                subtext: '数据来自辅导员',
            },
            legend: {
                data: ['计算机基础','数据可视化'],
            },
            calculable: true,
            xAxis: [
                {
                    type: 'value',  //设置柱状图
                    boundaryGap: ['20%','20%'],
                },
            ],//xAxis:设置X轴的类型为“value”(数值轴),并设置柱状图的间隙(boundaryGap)。
            yAxis: [
                {
                    type: 'category',
                    data: ['明明','红红','高高'],
                },
            ],//yAxis:设置Y轴的类型为“category”(类别轴),并设置其数据为“明明”、“红红”和“高高”。
            series: [
                {
                    name: '计算机基础',
                    type: 'bar',
                    data: [80,88,70],
                    markPoint: { // 标记点
          },

                },
                {
                    name: '数据可视化',
                    type: 'bar',
                    data: [60,90,80,],
                    markPoint: { // 标记点
          },
                },//series:设置图表的系列数据。
第一个系列:名称是“计算机基础”,类型为“bar”(柱状图),数据是[80, 88, 70]。
第二个系列:名称是“数据可视化”,类型也为“bar”,数据是[60, 90, 80]。
                
            ]
        };

        //使用刚指定的配置项和数据显示图表
        myChart.setOption(option);
    </script>
</body>

</html>

效果:

3.折线图

<!DOCTYPE html>//声明文档类型为HTML5
<html>

<head>//页面的头部开始,通常包含页面的元信息、样式表和脚本链接等
    <meta charset="utf-8">//设置文档的字符编码为UTF-8,支持多语言字符集。
    <script src="js/echarts.js"></script>//链接到ECharts库的JavaScript文件,该文件通常包含了ECharts图表库的所有功能。

</head>//页面的头部结束。

<body>//页面的主体部分开始,通常包含页面可见的所有内容。
    <div id="main" style="width: 800px; height: 400px"></div>//创建一个div元素,用于作为图表的容器,并设置其宽度为800像素,高度为400像素。这个div的ID是main,后续将用于初始化图表。
    <script type="text/javascript">//引用JavaScript代码块。
        var myChart = echarts.init(document.getElementById("main"));//使用ECharts的init方法初始化一个图表实例,并将其绑定到ID为main的div元素上。
        var option = {
            title: {
                text: '小王成绩表',
                subtext: '成绩来源于辅导员',
            },//设置图表的标题为“小王成绩表”,副标题为“成绩来源于辅导员”。
            legend: {
                data: ['2023年', '2024年'],
            },//设置图例,即图表中的系列名称,这里有两个系列:“2023年”和“2024年”。
            calculable: true,//允许在图表中进行数据区域缩放和平移。
            xAxis: [
                {
                    type: 'category',  
                    data:['2月','4月','6月','9月','11月','1月']
                },
            ],//设置X轴的类型为“category”(类目轴),并设置其数据为几个月份。
            yAxis: [
                {
                    type: 'value',
                    data: ['小王'],
                },
            ],//设置Y轴的类型为“value”(数值轴)
            series: [
                {
                    name: '2023年',
                    type: 'line',//设置为折线图
                    data: [65,75,66,80,90,73],
                },
                {
                    name: '2024年',
                    type: 'line',//设置为折线图
                    data: [65,88,75,40,60,72],
                },
            ],
        };//设置图表的系列数据。这里定义了两个系列,分别表示“2023年”和“2024年”的成绩,每个系列都有对应的数值数据

        //使用刚指定的配置项和数据显示图表
        myChart.setOption(option);
    </script>
</body>

</html>

效果:

在图标设置中,有不同的图标类型,设置不同的图标类型可以达到不同的预期效果,下面是常用的图标类型。

柱状图Bar
条形图Strip
折线图Line
饼图Pie
散点图Scatter
雷达图Radar/Spider Chart
K线图Candlestick/K Line
热力图Heatmap
树图Tree Diagram
地图Map

三、动态触发、最大最小平均值

实现动态触发,最大最小以及平均值其实非常简单,只需要添加几行代码即可搞定,重点是理解代码的意思,确保下次会使用。

动态触发:

tooltip: {
                trigger: 'axis',
            },
//设置提示框(tooltip)的触发方式为“axis”,即当鼠标悬停在坐标轴上时显示提示框。



toolbox: {  
    show: true, // 是否显示工具箱组件。  
    feature: {  
        mark: { show: true }, // 是否显示标记辅助线或标记点。  
        dataView: { show: true, readOnly: false }, // 是否显示数据视图,并且是否允许编辑数据。  
        magicType: { show: true, type: ['line', 'bar'] }, // 是否显示图表切换类型按钮,并指定可以切换的图表类型。  
        restore: { show: true }, // 是否显示重置图表为初始状态的按钮。  
        saveAsImage: { show: true }, // 是否显示保存为图片按钮。  
    },  
}

最大最小平均值:

data: [
              {
                type: 'max', name: '最大值'
              },{
                type: 'min', name: '最小值'
              }
            ]
          },
          markLine: { // 标记线
            data: [
              {
                type: 'average', name: '平均值'
              }
            ]//markLine: 定义标记线的配置。data: 用于定义标记线的数据点。type: 'average': 表示该标记线用于展示数据的平均值。name: '平均值': 标记线的名称,通常用于在图表上显示标注。

现在,我们把这两段添加到条形图中看看效果

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <script src="js/echarts.js"></script>
</head>

<body>

    <div id="main" style="width: 800px; height: 400px"></div>
    <script type="text/javascript">

        var myChart = echarts.init(document.getElementById("main"));

        var option = {
            title: {
                text: '3班成绩表',
                subtext: '数据来自辅导员',
            },
            tooltip: {
                trigger: 'axis',
            },
            legend: {
                data: ['计算机基础','数据可视化'],
            },
            toolbox: {
                show: true,
                feature: {
                    mark: { show: true },
                    dataView: { show: true, readOnly: false },
                    magicType: { show: true, type: ['line', 'bar'] },
                    restore: { show: true },
                    saveAsImage: { show: true },
                },
            },
            calculable: true,
            xAxis: [
                {
                    type: 'value',  //设置柱状图
                    boundaryGap: ['20%','20%'],
                },
            ],
            yAxis: [
                {
                    type: 'category',
                    data: ['明明','红红','高高'],
                },
            ],
            series: [
                {
                    name: '计算机基础',
                    type: 'bar',
                    data: [80,88,70],
                    markPoint: { // 标记点
            data: [
              {
                type: 'max', name: '最大值'
              },{
                type: 'min', name: '最小值'
              }
            ]
          },
          markLine: { // 标记线
            data: [
              {
                type: 'average', name: '平均值'
              }
            ]
          },
                },
                {
                    name: '数据可视化',
                    type: 'bar',
                    data: [60,90,80,],
                    markPoint: { // 标记点
            data: [
              {
                type: 'max', name: '最大值'
              },{
                type: 'min', name: '最小值'
              }
            ]
          },
          markLine: { // 标记线
            data: [
              {
                type: 'average', name: '平均值'
              }
            ]
          },
                },
                
            ]
        };

        //使用刚指定的配置项和数据显示图表
        myChart.setOption(option);
    </script>
</body>

</html>

效果:

最大值,最小值,平均数还有动态触发全实现了,其他两张表操作原理同此表,只是有稍稍改动,大家快去试试吧,完成自己的第一个项目实战!

拓展、什么是ECharts

1、ECharts

ECharts,全称Enterprise Charts,是一个使用JavaScript实现的开源可视化库。它是由百度前端开发团队Baidu EFE开发的成果之一。ECharts可以在PC和移动设备上流畅运行,并兼容当前绝大部分浏览器,如IE8/9/10/11、Chrome、Firefox、Safari等。它提供了丰富的图表类型,包括折线图、柱状图、散点图、饼图、K线图、地图、热力图、线图、关系图、treemap、旭日图、平行坐标等,以及支持动画、数据筛选、数据标签等功能。此外,ECharts还提供了交互组件,如标题、详情气泡、图例、值域、数据区域、时间轴、工具箱等,支持多图表、组件的联动和混搭展现。

2、ECharts的历史

ECharts的开发团队利用Canvas的性能优势,特别是在处理大量数据点时的出色表现,迅速开发出了涵盖各行业图表、满足各种需求的可视化库。此外,由于早期开发者们迅速补全了大量常用图表,并且提供了中文文档,ECharts很快在国内流行起来,并逐渐成为国内最火的图表库之一。

随着时间的推移,ECharts不断发展壮大。在2017年,陆奇加入百度后大力推广开源,这也为ECharts的发展带来了新的机遇。2018年,ECharts被捐赠给Apache基金会,并成为ASF孵化级项目。这一举措使得ECharts开始在国际上受到更多的关注。

最终,在2021年1月26日,Apache基金会官方宣布ECharts项目正式毕业,成为Apache顶级项目。这不仅是对ECharts技术实力和发展成果的认可,也标志着ECharts在数据可视化领域的重要地位得到了进一步的巩固。随后,在2021年1月28日,ECharts 5线上发布会举行,这进一步展示了ECharts在技术和应用方面的最新进展。

3、ECharts的特点

Charts的主要特点包括可视化类型丰富、定制性强、支持跨平台使用,并且具有吸引眼球的特效。它采用模块化的设计,使得每个图表类型都是一个独立的模块,可以根据需要选择加载。ECharts的底层依赖轻量级的矢量图形库ZRender,因此能够提供直观、交互丰富、可高度个性化定制的数据可视化图表。

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

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

相关文章

【IC设计】Verilog线性序列机点灯案例(三)(小梅哥课程)

声明&#xff1a;案例和代码来自小梅哥课程&#xff0c;本人仅对知识点做做笔记&#xff0c;如有学习需要请支持官方正版。 文章目录 该系列目录设计目标设计思路RTL及Testbench代码RTL代码Testbench代码 仿真结果上板视频 该系列目录 Verilog线性序列机点灯案例(一)&#xff…

LangChain: 调研报告

概述 LangChain是一个用于开发由语言模型驱动的应用程序的框架。它允许创建能够连接到上下文源&#xff08;如提示指令、少量示例、内容基础等&#xff09;的应用程序&#xff0c;并且能够进行推理&#xff08;基于提供的上下文如何回答问题、采取何种行动等&#xff09;。提供…

Ps:历史记录画笔工具

历史记录画笔工具 History Brush Tool可通过选择历史记录面板中的一个特定状态作为绘画源&#xff0c;然后使用画笔在图像的特定区域绘制&#xff0c;将这些区域恢复到选定的历史状态。 快捷键&#xff1a;Y 如果对图像进行了广泛的编辑&#xff0c;但希望将图像的一小部分恢复…

Explain 关键字

优质博文&#xff1a;IT-BLOG-CN explain关键字可以模拟优化器执行 SQL 查询语句&#xff0c;从而知道 MySQL 是如何处理 SQL 语句的。分析查询语句或表结构的性能瓶颈。执行语句&#xff1a;explain SQL语句。表头信息如下&#xff1a; 一、ID 参数 select 查询的序列号&…

算法---滑动窗口练习-8(最小覆盖子串)

最小覆盖子串 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;最小覆盖子串 2. 讲解算法原理 滑动窗口哈希表 算法的主要思想是使用滑动窗口的方法。它使用两个哈希表 hash1 和 hash2 来记录字符串 s 和 t 中各个字符的出现次数。其中 hash2 用于记…

MongoDB的安装方法图文详细

官网&#xff1a;www.mongodb.com 选择 Products > Community Edition 就能进入社区版 在这里下载 windows 版对应的安装包 注意&#xff1a;6.0.1 版本的 MongoDB 配置环境变量有问题&#xff0c;并且我不知道怎么解决&#xff0c;如果想要避免出问题&#xff0c;建议使…

武汉灰京文化:直播游戏新时代的游戏宣传方式

随着互联网和科技的迅速发展&#xff0c;游戏产业也日益繁荣。传统的游戏宣传方式逐渐显现出一些不足&#xff0c;传统的广告渠道和媒体报道在一定程度上已经不能满足游戏行业的需求。然而&#xff0c;随着直播平台的兴起&#xff0c;直播游戏成为了一种新的游戏宣传方式&#…

JVM学习-垃圾回收专题

目录 1.如何判断对象可以回收 1.1引用计数法 1.2可达性分析算法 1.3五种引用 1.4拓展&#xff1a;直接内存 2.垃圾回收算法 2.1标记清除算法 2.2标记整理算法 2.3复制 3.分代垃圾回收 3.垃圾回收器 3.1串行垃圾回收器 3.2吞吐量优先垃圾回收器 3.3响应时间优先垃圾回收器…

前端跨平台开发框架:简化多端开发的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

数据可视化-ECharts Html项目实战(2)

在之前的文章中&#xff0c;我们学习了如何创建简单的折线图&#xff0c;条形图&#xff0c;柱形图并实现动态触发&#xff0c;最大最小平均值。想了解的朋友可以查看这篇文章。同时&#xff0c;希望我的文章能帮助到你&#xff0c;如果觉得我的文章写的不错&#xff0c;请留下…

【Hadoop大数据技术】——MapReduce分布式计算框架(学习笔记)

&#x1f4d6; 前言&#xff1a;MapReduce是Hadoop系统核心组件之一&#xff0c;它是一种可用于大数据并行处理的计算模型、框架和平台&#xff0c;主要解决海量数据的计算问题&#xff0c;是目前分布式计算模型中应用较为广泛的一种。 目录 &#x1f552; 1. MapReduce概述&am…

Qt教程 — 3.4 深入了解Qt 控件:Input Widgets部件(3)

目录 1 Input Widgets简介 2 如何使用Input Widgets部件 2.1 Dial 组件-模拟车速表 2.2 QScrollBar组件-创建水平和垂直滚动条 2.3 QSlider组件-创建水平和垂直滑动条 2.4 QKeySequenceEdit组件-捕获键盘快捷键 Input Widgets部件部件较多&#xff0c;将分为三篇文章介绍…

第二十四天-数据可视化Matplotlib

目录 1.介绍 2.使用 1. 安装&#xff1a; 2.创建简单图表 3.图表类型 1.一共分为7类 2.变化 1.折线图 3.分布 ​编辑 1.直方图 2.箱型图 4.关联 1. 散点图&#xff1a; 2.热力图&#xff1a; 5.组成 1.饼图 2.条形图 6.分组 1.簇型散点图 2.分组条形图 3.分…

JMeter 面试题及答案整理,最新面试题

JMeter中如何进行性能测试的规划和设计&#xff1f; 进行JMeter性能测试的规划和设计主要遵循以下几个步骤&#xff1a; 1、确定测试目标&#xff1a; 明确性能测试的目的和目标&#xff0c;比如确定要测试的系统性能指标&#xff08;如响应时间、吞吐量、并发用户数等&#…

从大模型到Agentscope——分布式Multi-Agent应用开发与部署

目录 Why需要分布式 案例 多进程的分布书版本能快速提升速度 分布式的挑战 AgentScope分布式解决 方案 实现RPC Agent 基于Actor模式的并行调度缺点&#xff1a;需要Agent内部决定消息传递目标 被调用的Agent立即返回占位符placeholder to_dist: 开启自动将单机进行扩展…

图解缓存淘汰算法 LRU、LFU | 最近最少使用、最不经常使用算法 | go语言实现

写在前面 无论是什么系统&#xff0c;在研发的过程中不可避免的会使用到缓存&#xff0c;而缓存一般来说我们不会永久存储&#xff0c;但是缓存的内容是有限的&#xff0c;那么我们如何在有限的内存空间中&#xff0c;尽可能的保留有效的缓存信息呢&#xff1f; 那么我们就可以…

代码算法训练营day8 | 344.反转字符串、 541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词、卡码网:55.右旋转字符串

day8: 344.反转字符串541. 反转字符串II卡码网&#xff1a;54.替换数字151.翻转字符串里的单词卡码网&#xff1a;55.右旋转字符串 344.反转字符串 题目链接 状态&#xff1a;ok 文档&#xff1a;programmercarl.com 思路&#xff1a; 对于这道题目可以选择直接用C里的一个库函…

<Linux> 线程的同步与互斥

目录 前言&#xff1a; 一、资源共享问题 &#xff08;一&#xff09;多线程并发访问 &#xff08;二&#xff09;临界资源与临界区 &#xff08;三&#xff09;“锁” 是什么 二、多线程抢票场景 &#xff08;一&#xff09;并发抢票 &#xff08;二&#xff09;并发访…

基于Matlab的车牌识别算法,Matlab实现

博主简介&#xff1a; 专注、专一于Matlab图像处理学习、交流&#xff0c;matlab图像代码代做/项目合作可以联系&#xff08;QQ:3249726188&#xff09; 个人主页&#xff1a;Matlab_ImagePro-CSDN博客 原则&#xff1a;代码均由本人编写完成&#xff0c;非中介&#xff0c;提供…

Oracle 临时表空间管理(Temporary Tablespace)

Oracle临时表空间&#xff08;Temporary Tablespace&#xff09;主要用来存储数据库运行中产生的临时对象&#xff0c;例如SQL排序结果集&#xff0c;临时表等&#xff0c;这些对象的生存周期只有会话。本文总结了Oralce中涉及临时表空间的管理和优化操作。 目录 一、临时表空…