当前位置: 首页 > news >正文

Charts 教程:创建交互式图表的基础

ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表,并介绍一些基本概念和常见的配置项。

1. 什么是 ECharts?

ECharts(Enterprise Charts)是由百度团队开发的一个开源数据可视化库,使用了 Canvas 技术来渲染图表,支持图表的交互效果、动画展示以及丰富的配置。它不仅支持各种常见的图表类型,如柱状图、折线图、饼图、散点图等,还支持地图、关系图等高级图表。

2. 如何在项目中引入 ECharts?

在开始使用 ECharts 之前,首先需要将 ECharts 引入到你的项目中。如果你使用的是 HTML 文件,可以通过 CDN 或本地引入 ECharts。

2.1 通过 CDN 引入 ECharts

你可以通过以下方式从 CDN 引入 ECharts 库:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>ECharts Example</title><script src="https://cdn.jsdelivr.net/npm/echarts@5.3.3/dist/echarts.min.js"></script>
</head>
<body><div id="chart" style="width: 600px; height: 400px;"></div><script>var chart = echarts.init(document.getElementById('chart'));var option = {title: {text: 'ECharts 示例'},tooltip: {},legend: {data: ['销量']},xAxis: {data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']},yAxis: {},series: [{name: '销量',type: 'bar',data: [5, 20, 36, 10, 10, 20, 40]}]};chart.setOption(option);</script>
</body>
</html>

 

.2 通过 NPM 安装

如果你使用的是 React、Vue 或者其他现代 JavaScript 框架,可以通过 NPM 安装 ECharts:

npm install echarts --save

然后在 JavaScript 文件中引入:

import * as echarts from 'echarts';

3. 创建一个简单的柱状图

接下来,我们将展示如何使用 ECharts 创建一个简单的柱状图。

3.1 配置图表的基本选项

在 ECharts 中,图表的显示和行为通过 option 配置项来控制。以下是一个简单的柱状图的配置:

var option = {title: {text: '2024 年销售数据',subtext: '本年度销售情况',left: 'center'},tooltip: {trigger: 'item'},xAxis: {type: 'category',data: ['一月', '二月', '三月', '四月', '五月', '六月']},yAxis: {type: 'value'},series: [{data: [120, 200, 150, 80, 70, 110],type: 'bar'}]
};
3.2 渲染图表

将图表配置项传递给 echarts.init() 方法,并使用 setOption() 方法渲染图表。

var chart = echarts.init(document.getElementById('chart'));
chart.setOption(option);

4. ECharts 图表的交互性

ECharts 强大的交互性是它的一大特点。你可以轻松添加提示框、图例、点击事件等功能。

4.1 提示框(Tooltip)

在上述柱状图中,我们使用了 tooltip 配置项来启用鼠标悬停时显示提示框。你可以通过自定义 tooltip 的内容、样式等进一步调整它的显示。

tooltip: {trigger: 'axis',formatter: function (params) {var result = params[0].name + '<br>';params.forEach(function (item) {result += item.seriesName + ': ' + item.value + '<br>';});return result;}
}
4.2 图例(Legend)

ECharts 允许通过图例来控制多个系列的显示与隐藏。你可以在图表的 legend 配置中设置图例内容和样式。

legend: {data: ['销量', '利润']
}
4.3 点击事件(Click Event)

ECharts 还支持图表点击事件。例如,我们可以为柱状图的每个柱子添加点击事件:

chart.on('click', function (params) {alert('你点击了 ' + params.name + ' 数据');
});

5. 更高级的图表:折线图和饼图

除了柱状图,ECharts 还支持多种类型的图表。下面是折线图和饼图的简单配置示例。

5.1 折线图
var option = {title: {text: '月度销售趋势'},tooltip: {trigger: 'axis'},xAxis: {type: 'category',data: ['一月', '二月', '三月', '四月', '五月', '六月']},yAxis: {type: 'value'},series: [{data: [120, 132, 101, 134, 90, 230],type: 'line'}]
};
5.2 饼图
var option = {title: {text: '市场份额',subtext: '2024',left: 'center'},tooltip: {trigger: 'item',formatter: '{a} <br/>{b}: {c} ({d}%)'},series: [{name: '市场份额',type: 'pie',radius: '50%',data: [{ value: 235, name: '品牌A' },{ value: 274, name: '品牌B' },{ value: 310, name: '品牌C' },{ value: 154, name: '品牌D' }]}]
};

6. 如何自定义样式?

ECharts 允许你通过 CSS 或直接在配置项中修改图表的样式。你可以为每个图表元素设置不同的颜色、字体、边框、阴影等属性。

例如,修改柱状图的颜色和字体:

option.series[0].itemStyle = {color: '#c23531',  // 自定义颜色borderWidth: 1,borderColor: '#fff'
};
option.title.textStyle = {fontSize: 20,fontWeight: 'bold'
};

7. 总结

ECharts 是一个功能强大的数据可视化工具,支持多种图表类型,具有丰富的交互性和自定义功能。在这个简短的教程中,我们介绍了如何在网页中使用 ECharts 创建基础的柱状图、折线图和饼图,如何使用 ECharts 的交互功能以及如何自定义样式。你可以根据需要进一步了解 ECharts 的官方文档,掌握更多高级功能。

各位小伙伴还在BOSS直聘hr已读不回?!大家快试试这里!

创作不易,各位帅气漂亮的小伙伴点个关注再走呗!!

相关文章:

Charts 教程:创建交互式图表的基础

ECharts 是一个开源的、基于 JavaScript 的数据可视化库&#xff0c;它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图&#xff0c;还是复杂的地图和关系图&#xff0c;ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表&#xff0c…...

VTK知识学习(20)- 数据的存储与表达

1、数据的存储 1)、vtkDataArray VTK中的内存分配采用连续内存&#xff0c;可以快速地创建、删除和遍历&#xff0c;称之为数据数组(DataArray)&#xff0c;用类 vtkDataArray 实现。数组数据的访问是基于索引的&#xff0c;从零开始计数。 以 vtkFloatArray 类来说明如何在 …...

springboot网站开发-使用redis作为定时器控制手机号每日注册次数

springboot网站开发-使用redis作为定时器控制手机号每日注册次数&#xff01;为了避免&#xff0c;某些手机号&#xff0c;频繁的申请注册&#xff0c;开启了redis数据库配置的定时器模式。下面是设计代码的案例展示。 1&#xff1a; package com.blog.utils;import org.slf4…...

IntelliJ+SpringBoot项目实战(28)--整合Beetl模板框架

在前面的文章里介绍过freemarker&#xff0c;thymeleaf模板引擎&#xff0c;本文介绍另一个性能超高的模板引擎---Beetl&#xff0c;据说此模板引擎的性能远超Freemarker。官网的说法是&#xff0c;Beetl 远超过主流java模板引擎性能(引擎性能5-6倍于FreeMarker&#xff0c;2倍…...

Kafka-Connect源码分析

一、上下文 《Kafka-Connect自带示例》中我们尝试了零配置启动producer和consumer去生产和消费数据&#xff0c;那么它内部是如何实现的呢&#xff1f;下面我们从源码来揭开它神秘的面纱。 二、入口类有哪些&#xff1f; 从启动脚本&#xff08;connect-standalone.sh&#…...

项目五 李白个人生平(资源)

本项目旨在能够灵活运用整章知识点设计页面。本项目创建了“唐朝诗人群像”网站的第三个页面——即李白个人生平页面,主要完成其 HTML部分。 【项目目的】 灵活运用HTML 基本标记。掌握在 HTML页面中嵌入多媒体对象的方法。【项目内容】 利用HTML标记对网页进行结…...

计算机视觉与各个学科融合:探索新方向

目录 引言计算机视觉与其他学科的结合 与医学的结合与机械工程的结合与土木工程的结合与艺术与人文的结合发文的好处博雅知航的辅导服务 引言 计算机视觉作为人工智能领域的重要分支&#xff0c;正迅速发展并渗透到多个学科。通过与其他领域的结合&#xff0c;计算机视觉不仅…...

数据分析类论文通过stata进行数据预处理(一)

一&#xff1a;导入数据 打开Stata命令窗口&#xff0c;输入以下命令&#xff1a; use "文件路径\数据文件名.dta", clear其中&#xff0c;.dta是Stata的数据文件格式。clear选项用于在打开新数据文件前关闭当前数据集。 以下是一些导入不同格式数据的方法&#x…...

力扣——1.返回字符串中第一个唯一的字符;2.把字符串转换成整数(C++)

1.返回字符串中第一个唯一的字符 1.1题目描述 给定一个字符串s &#xff0c;找到它的第一个不重复的字符&#xff0c;并返回它的索引 。如果不存在&#xff0c;则返回 -1 。 示例&#xff1a; 1.2思路 这里提供两种思路&#xff1a;第一种是利用哈希表&#xff0c;先遍历一…...

M-LAG【根桥方式】

1.M-LAG不是有单向隔离机制天然防环吗&#xff0c;为什么还要使用STP&#xff1f; 答&#xff1a;因为M-LAG设备下面不是只接服务器&#xff0c;也不是和所有下联设备组成M-LAG&#xff0c;和没有组成M-LAG的设备可能会造成环路。 2.为什么要关闭peer-link接口的生成树计算&a…...

新书速览|循序渐进Node.js企业级开发实践

《循序渐进Node.js企业级开发实践》 1 本书内容 《循序渐进Node.js企业级开发实践》结合作者多年一线开发实践&#xff0c;系统地介绍了Node.js技术栈及其在企业级开发中的应用。全书共分5部分&#xff0c;第1部分基础知识&#xff08;第1&#xff5e;3章&#xff09;&#xf…...

Xlsxwriter生成Excel文件时TypeError异常处理

在使用 XlsxWriter 生成 Excel 文件时&#xff0c;如果遇到 TypeError&#xff0c;通常是因为尝试写入的值或格式与 XlsxWriter 的限制或要求不兼容。 1、问题背景 在使用 Xlsxwriter 库生成 Excel 文件时&#xff0c;出现 TypeError: “expected string or buffer” 异常。此…...

【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处?

【NLP高频面题 - LLM架构篇】大模型使用SwiGLU相对于ReLU有什么好处&#xff1f; 重要性&#xff1a;★★★ &#x1f4af; NLP Github 项目&#xff1a; NLP 项目实践&#xff1a;fasterai/nlp-project-practice 介绍&#xff1a;该仓库围绕着 NLP 任务模型的设计、训练、优化…...

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析

2021 年“泰迪杯”数据分析技能赛B 题肥料登记数据分析 完整代码请私聊 博主 # 一、背景 肥料是农业生产中一种重要的生产资料&#xff0c;其生产销售必须遵循《肥料登记管理办法》&#xff0c;依法在农业行政管理部门进行登记。各省、自治区、直辖市人民政府农业行政主管部门主…...

网络原理之 IP 协议

目录 1. IP 协议报文格式 2. 网段划分 3. 地址管理 1) 动态分配 2) NAT 机制 (网络地址转换) 3) IPv6 4. 路由选择 1. IP 协议报文格式 IP 协议是网络层的重点协议。 网络层要做的事情&#xff0c;主要就是两方面&#xff1a; 1) 地址管理 制定一系列的规则&#xff…...

在 Spring Boot 项目中使用 Thymeleaf 时,通常情况下,你需要配置热加载(Hot Reload)来在开发过程中更快速地看到页面的变化。

配置步骤&#xff1a; 1. 添加 DevTools 依赖 在 pom.xml 中添加 spring-boot-devtools 依赖。DevTools 提供了自动重启、LiveReload、模板热加载等功能。 <dependencies><!-- Spring Boot DevTools (用于热加载) --><dependency><groupId>org.spri…...

arm-linux GPIO控制-脚本及shell格式

以下是针对BCM编号27, 28, 29, 30, 31的shell命令 shell方式 导出GPIO引脚 echo 27 > /sys/class/gpio/export echo 28 > /sys/class/gpio/export echo 29 > /sys/class/gpio/export echo 30 > /sys/class/gpio/export echo 31 > /sys/class/gpio/export 设…...

Go 语言基础知识语法

很早听人说过一句话&#xff1a;“每年学习&#xff08;接触&#xff09;一门新的编程语言”&#xff0c;这听起来可能有点不太现实&#xff0c;但是其实很多种语言都是相通的。掌握新的编程语言不仅仅是增加职业工具箱中的工具&#xff0c;更是一种扩展我们思维方式、解决问题…...

贪心算法part05

文章参考来源代码随想录 (programmercarl.com) 56. 合并区间 本题和前几题类似&#xff0c;都是判断上一个元素的右边界与当前元素的左边界大小关系 但是需要注意是&#xff1a;本题需要更新结果数组元素的右边界&#xff0c;因此比较的是数组最后一个元素右边界与当前元素左…...

02、SpringMVC核心(上)

一、RequestMapping注解 @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping @Reflective({ControllerMappingReflectiveProcessor.class}) public @interface RequestMapping {String name() default "";…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

Android写一个捕获全局异常的工具类

项目开发和实际运行过程中难免会遇到异常发生&#xff0c;系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler&#xff0c;它是Thread的子类&#xff08;就是package java.lang;里线程的Thread&#xff09;。本文将利用它将设备信息、报错信息以及错误的发生时间都…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展&#xff0c;尤其是大模型&#xff08;LLM&#xff09;在各行各业的深度应用和整合&#xff0c;企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者&#xff0c;还是积极拥抱AI转型的传统企业&#xff0c;在面向公众…...

用递归算法解锁「子集」问题 —— LeetCode 78题解析

文章目录 一、题目介绍二、递归思路详解&#xff1a;从决策树开始理解三、解法一&#xff1a;二叉决策树 DFS四、解法二&#xff1a;组合式回溯写法&#xff08;推荐&#xff09;五、解法对比 递归算法是编程中一种非常强大且常见的思想&#xff0c;它能够优雅地解决很多复杂的…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...

云原生安全实战:API网关Envoy的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口&#xff0c;负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...