Apache ECharts

目录

1. 基本概念

1.1 ECharts的主要特点有:

1.2 ECharts的图形绘制方式:

2. 基本使用

3. 图表容器的大小

4. Option常用配置项

1. 基础配置项

title 标题组件

tooltip提示框组件

legend 图例组件

2.坐标配置项

grid网格组件

xAxis 直角坐标系 grid 中的 x 轴

yAxis 直角坐标系 grid 中的 y 轴

3. 系列配置项(series)


1. 基本概念

Apache ECharts(简称ECharts)是一款功能强大的基于JS的数据可视化图表库,它是由百度前端团队开发和维护的开源可视化库。兼容性强,底层依赖矢量图形库 ZRender ,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

1.1 ECharts的主要特点有

丰富的图表类型:ECharts支持多种图表类型,包括折线图、柱状图、散点图、饼图、雷达图、地图、热力图等,可以满足不同场景下的数据可视化需求。

高度可定制:ECharts允许用户自定义图表的几乎所有元素,包括颜色、字体、样式、布局等,能够轻松适应不同的界面风格和业务需求。

强大的交互性:ECharts支持图表元素的点击、拖拽、缩放等交互操作,使得数据展示更为生动和易于理解。此外,ECharts还提供了丰富的提示框、图例、工具箱等交互组件,增强了用户与数据之间的交互体验。

动态数据更新:ECharts支持动态数据更新,可以轻松地向图表添加、删除或修改数据,并实时更新图表。这使得ECharts在实时数据监控和动态数据展示方面具有优势。

跨平台和兼容性:ECharts基于HTML5 Canvas,兼容所有现代浏览器和移动设备。它可以在各种设备和环境下运行,无需额外的适配工作。


1.2 ECharts的图形绘制方式

Canvas:

优点:绘制效果更加“炫”,可以通过WebGL等实现三维效果。

缺点:兼容性相对较差,特别是在一些旧的浏览器上可能无法完美支持。但在现代浏览器上,这个问题基本上不需要担心。

SVG:

优点:兼容性较好,由于SVG是一项比较成熟的标准,许多旧的浏览器都对其有完善支持。

缺点:实现的效果可能有所限制,不如Canvas那么“炫”。

官网地址:快速上手 - 使用手册 - Apache ECharts


2. 基本使用

1. 获取 Apache ECharts

Apache ECharts 提供了多种安装方式

可以从官网(Apache ECharts)下载ECharts的源代码或编译产物,并在项目中引入。

还可以直接使用npm包管理器安装ECharts,命令为  npm install echarts

 至还可以通过ECharts 在线构建 (apache.org)的方式只引入部分模块以减少包体

2. 引入Echarts.js文件

<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
//或者找到本地文件dist/echarts.min.js引入
<script src="../echarts-5.5.1/package/dist/echarts.min.js"></script>

3. 为ECharts准备一个定义了宽高的DOM
一般会用div标签,这个div图表容器决定了图表显示在哪里

<div id="main" style="width: 600px; height: 400px"></div>

4. 基于准备好的DOM,初始化echarts实例

var myChart = echarts.init(document.getElementById('main'))

5. 指定图表的配置项和数据

var option = {title: {text: 'ECharts 入门示例'},tooltip: {},xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]
}

6.  使用刚指定的配置项和数据显示图表

myChart.setOption(option)

最终显示效果如图:


3. 图表容器的大小

1. 因为echarts需要在调用 echarts.init 初始容器时需保证容器已经有宽度和高度,所以官方推荐的做法是 “在 HTML 中定义有宽度和高度的父容器 ”

<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));
</script>

2. 通过调用 echartsInstance.resize,我们可以动态改变图表的大小,比如当页面大小变化时,监听 页面的resize 事件:

<div id="main" style="width: 100%;height:400px;"></div>
var myChart = echarts.init(document.getElementById('main'));window.addEventListener('resize', function() {myChart.resize();});

也可以直为图表设置特定的大小

myChart.resize({width: 800,height: 400
});

4. Option常用配置项

echarts的配置项有很多,没必要死记硬背,了解常用的部分,在需要使用的时候能够正确查询即可。可以对比这个 ( ECharts图表集—echarts gallery社区)网站的例子进行练习

1. 基础配置项

title 标题组件
myChart.setOption({//配置图表标题组件title: {show: true, // 是否显示标题,默认truetext: "图表主标题文本", //主标题文本,支持使用 \n 换行。textStyle: { //设置主标题文字样式,颜色,字体,阴影等color: "#008DFF",},subtext: '图表副标题文本' ,left: 200, //title 组件离容器左侧的距离backgroundColor: '#ccc' //标题背景色,默认透明。},
});

tooltip提示框组件
tooltip: {show: true,     //是否显示提示框组件,默认为falsetrigger: 'axis',//触发类型,鼠标悬停在,如'item'、'axis'等 ,上面时触发triggerOn: 'mousemove' //触发条件,可选mousemove(鼠标移动时触发)、click(点击触发)、mousemove|click(鼠标移动或点击时触发)axisPointer: {  //配置坐标轴上指示器的样式和行为type: 'cross',//指示器的类型,如十字线cross,crossStyle: {//配置十字线的样式color: '#999'}}
},

比如我们给 “2.基础使用”中的例子加上:

var option = {tooltip: {trigger: 'axis',axisPointer: {type: 'cross',crossStyle: { color: '#999'}}},//.....其他
}

当你把鼠标移动到图表上时: 


legend 图例组件

当有多条数据时展示了数据分类展示;如下

var option = {xAxis: {data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},yAxis: {},legend: {data: ['库存量', '销量']},series: [{name: '库存量',type: 'bar',data: [10, 20, 50, 25, 66, 33]},{name: '销量',type: 'line',data: [5, 20, 36, 10, 10, 20]}]
}


2.坐标配置项

grid网格组件
grid: {
//网格距离容器各边的距离top: '18%',bottom: '10%',left: '10%',right: '5%'
},

xAxis 直角坐标系 grid 中的 x 轴
//配置直角坐标系 grid 中的 x 轴
xAxis: {show: true, // 是否显示 x 轴,默认truetype: "category", //坐标轴类型。默认category(类目轴),其他值:value(数值轴),time(时间轴),log(对数轴)name: "x轴名字", //坐标轴名称。nameLocation: "center", //坐标轴名称显示位置。nameTextStyle: {}, //坐标轴名称的文字样式inverse: true, //是否是反向坐标轴。默认false    axisLabel:{//坐标轴刻度标签的相关设置。show: true, //是否显示刻度标签。color: "red", //刻度标签文字的颜色,默认取 axisLine.lineStyle.color。支持回调函数},axisTick: {//是否显示坐标轴刻度show: false },data: ["足球","篮球","乒乓球","跳绳","健步走","呼啦圈","踢毽",{value: "霹雳舞",textStyle: { fontSize: 20, color: "red"},//类目标签的文字样式},],//Array,类目数据,在类目轴(type: 'category')中有效。//如果没有设置 type,但是设置了 axis.data,则认为 type 是 'category'。//如果设置了 type 是 'category',但没有设置 axis.data,则 axis.data 的内容会自动从 series.data 中获取
},

yAxis 直角坐标系 grid 中的 y 轴

y轴属性与x轴属性相似,需特别注意的是,type属性默认值不同

yAxis: {type: "value", //坐标轴类型。默认值value,x轴type默认值为category
},

比如。我们把 “2.基础使用” 中的竖向柱状图改为横向柱状图:

var option = {xAxis: { type: 'value' },yAxis: {type: 'category',data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20]}]
}


3. 系列配置项(series)

series:系列的配置项,用于定义图表中的数据系列

series: [{name: '库存量', //系列名称type: 'bar', //图标类型,如bar,line,pie等data: [10, 20, 50], //系列数据lable: {show: true, //是否显示标签position: 'top' //标签显示位置},itemStyle: {color: 'green', //系列项的颜色borderColor: 'yellow' //系列项的边框颜色},emphasis: {//系列的高亮样式配置项itemStyle: {//高亮时的图形样式color: 'red'},label: {} //高亮时的标签样式}//其他配置项},{//其他数据系列// .......}

官方教程文档地址:Documentation - Apache ECharts

不同版本的ECharts可能会有一些差异,建议查阅ECharts官方文档来获取最新的配置项信息。


若有错误或描述不当的地方,烦请评论或私信指正,万分感谢 😃 共勉!💪

如果我的文章对你有帮助,你的赞👍就是对我的最大支持^_^

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NVIDIA NIM 简介

NVIDIA NIM 简介 NVIDIA NIM 是一组易于使用的微服务&#xff0c;旨在加速在云、数据中心和工作站中部署生成式 AI 模型。NIM 按模型系列和每个模型分类。例如&#xff0c;用于大型语言模型 (LLM) 的 NVIDIA NIM 将最先进的 LLM 的强大功能带入企业应用程序&#xff0c;提供无…

常用中间件介绍

1. RabbitMQ RabbitMQ是一个基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff09;的开源消息代理软件&#xff0c;实现了面向消息的中间件。它支持消息持久化、队列、交换机&#xff08;Exchange&#xff09;和绑定&#xff08;Bin…

AI写作(四)预训练语言模型:开启 AI 写作新时代(4/10)

一、预训练语言模型概述 ​ 预训练语言模型在自然语言处理领域占据着至关重要的地位。它以其卓越的语言理解和生成能力&#xff0c;成为众多自然语言处理任务的关键工具。 预训练语言模型的发展历程丰富而曲折。从早期的神经网络语言模型开始&#xff0c;逐渐发展到如今的大规…

《云原生安全攻防》-- K8s安全防护思路

从本节课程开始&#xff0c;我们将正式进入防护篇。通过深入理解K8s提供的多种安全机制&#xff0c;从防守者的角度&#xff0c;运用K8s的安全最佳实践来保障K8s集群的安全。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; K8s安全防护思路&#xff1a;掌握K8s自身提…

LLM之模型评估:情感评估/EQ评估/幻觉评估等

如果您想知道如何确保 LLM 在您的特定任务上表现出色&#xff0c;本指南适合您&#xff01;它涵盖了评估模型的不同方法、设计您自己的评估的指南以及来自实践经验的技巧和窍门。 Human-like Affective Cognition in Foundation Models&#xff1a;情感认知评估 研究者们提出了…

【JavaEE进阶】导读

本节⽬标 了解什么是JavaEE 在JavaEE中, 我们学习什么, 如何学, 难点是什么 一、Java EE 发展历程 Java EE(Java Platform Enterprise Edition), Java 平台企业版. 是JavaSE的扩展, ⽤于解决企业级的开发需求, 所以也可以称之为是⼀组⽤于企业开发的Java技术标准. 所以, 学习…

【韩老师零基础30天学会Java 】07章 面向对象编程(基础)

第七章 面向对象编程&#xff08;基础&#xff09; 1. 类与成员方法 类与对象关系示意图 示例&#xff1a;代码 import java.util.Scanner;public class IntDetail{public static void main(String[] args){Cat cat1new Cat();cat1.name"小花";cat1.age12;cat1.co…

超子物联网HAL库笔记:定时器[外部模式]篇

超子物联网 HAL库学习 汇总入口&#xff1a; 超子物联网HAL库笔记&#xff1a;[汇总] 写作不易&#xff0c;如果您觉得写的不错&#xff0c;欢迎给博主来一波点赞、收藏~让博主更有动力吧&#xff01; 一、资源介绍&#xff1a;STM32F103C8T6定时器资源介绍 高级定时器&#x…

谷歌浏览器的自动翻译功能如何开启

在当今全球化的网络环境中&#xff0c;能够流畅地浏览不同语言的网页是至关重要的。谷歌浏览器&#xff08;Google Chrome&#xff09;提供了一项强大的自动翻译功能&#xff0c;可以帮助用户轻松跨越语言障碍。本文将详细介绍如何开启和使用谷歌浏览器的自动翻译功能&#xff…

【大数据技术基础 | 实验十】Hive实验:部署Hive

文章目录 一、实验目的二、实验要求三、实验原理四、实验环境五、实验内容和步骤&#xff08;一&#xff09;安装部署&#xff08;二&#xff09;配置HDFS&#xff08;三&#xff09;启动Hive 六、实验结果&#xff08;一&#xff09;启动结果&#xff08;二&#xff09;Hive基…

使用 Vue 配合豆包MarsCode 实现“小恐龙酷跑“小游戏

作者&#xff1a;BLACK595 “小恐龙酷跑”&#xff0c;它是一款有趣的离线游戏&#xff0c;是Google给Chrome浏览器加的一个有趣的彩蛋。当我们浏览器断网时一只像素小恐龙便会出来提示断网。许多人认为这只是一个可爱的小图标&#xff0c; 但当我们按下空格后&#xff0c;小恐…

案例精选 | 河北省某检察院安全运营中异构日志数据融合的实践探索

河北省某检察院是当地重要的法律监督机构&#xff0c;肩负着维护法律尊严和社会公平正义的重要职责。该机构依法独立行使检察权&#xff0c;负责对犯罪行为提起公诉&#xff0c;并监督整个诉讼过程&#xff0c;同时积极参与社会治理&#xff0c;保护公民权益&#xff0c;推动法…

7天用Go从零实现分布式缓存GeeCache(学习)(3)

目录结构 ├── geecache │ ├── byteview.go │ ├── cache.go │ ├── consistenthash │ │ ├── consistenthash.go │ │ └── consistenthash_test.go │ ├── geecache.go │ ├── go.mod │ ├── http.go │ ├── lru │ …

力扣 LeetCode 142. 环形链表II(Day2:链表)

解题思路&#xff1a; 使用set判断是否重复添加&#xff0c;如果set加入不进去证明之前到达过该节点&#xff0c;有环 public class Solution {public ListNode detectCycle(ListNode head) {Set<ListNode> set new HashSet<>();ListNode cur head;while (cur …

CLion配置QT开发环境

一、将qmake工程转为cmake工程&#xff08;方法一&#xff1a;用工具转换并做适当修改&#xff09; 1、工具链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1grW2QY3sW8X2JaHWM_ePPw 提取码&#xff1a;7at4 工具源码:https://github.com/milahu/qmake2cmake 2、执行…

《AI 使生活更美好》

《AI 使生活更美好》 当我们步入科技腾飞的时代&#xff0c;人工智能&#xff08;AI&#xff09;如同一颗璀璨的新星&#xff0c;照亮了我们生活的每一个角落。它以惊人的速度改变着我们的世界&#xff0c;从医疗到教育&#xff0c;从交通到娱乐&#xff0c;AI 正以前所未有的力…

项目模块十七:HttpServer模块

一、项目模块设计思路 目的&#xff1a;实现HTTP服务器搭建 思想&#xff1a;设计请求路由表&#xff0c;记录请求方法与对应业务的处理函数映射关系。用户实现请求方法和处理函数添加到路由表&#xff0c;服务器只接受请求并调用用户的处理函数即可。 处理流程&#xff1a; …

ODOO学习笔记(1):ODOO的SWOT分析和技术优势是什么?

ODOO是一款开源的企业管理软件套件&#xff0c;广泛应用于企业管理中。它由比利时的Odoo S.A.公司开发&#xff0c;最初名为OpenERP&#xff0c;现在已经成为全球流行的ERP解决方案之一。ODOO集成了ERP、CRM、电子商务和CMS等多种功能模块&#xff0c;适用于各种规模的企业应用…

出海攻略,如何一键保存Facebook视频素材

提词宝&#xff1a;快速保存Facebook视频教程 目标人群与痛点 目标人群&#xff1a;经常在Facebook上浏览视频但不知道如何保存的用户&#xff0c;包括学生、内容创作者、营销从业者&#xff0c;以及需要保存重要视频素材的人。 痛点与场景&#xff1a; 看到喜欢的视频&…

【Playwright + Python】系列(十)利用 Playwright 完美处理 Dialogs 对话框

哈喽&#xff0c;大家好&#xff0c;我是六哥&#xff01;今天我来给大家分享一下如何使用playwight处理Dialogs对话框&#xff0c;面向对象为功能测试及零基础小白&#xff0c;这里我尽量用大白话的方式举例讲解&#xff0c;力求所有人都能看懂&#xff0c;建议大家先收藏&…