当前位置: 首页 > 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 "";…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

ETLCloud可能遇到的问题有哪些?常见坑位解析

数据集成平台ETLCloud&#xff0c;主要用于支持数据的抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;过程。提供了一个简洁直观的界面&#xff0c;以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学

一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件&#xff0c;其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时&#xff0c;价带电子受激发跃迁至导带&#xff0c;形成电子-空穴对&#xff0c;导致材料电导率显著提升。…...

Netty自定义协议解析

目录 自定义协议设计 实现消息解码器 实现消息编码器 自定义消息对象 配置ChannelPipeline Netty提供了强大的编解码器抽象基类,这些基类能够帮助开发者快速实现自定义协议的解析。 自定义协议设计 在实现自定义协议解析之前,需要明确协议的具体格式。例如,一个简单的…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...