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

如何使用 ECharts 绘制 K 线图

在金融数据可视化领域K 线图又称蜡烛图是展示股票、期货等价格走势的核心工具。它通过矩形实体和上下影线直观呈现开盘价、收盘价、最高价和最低价帮助投资者快速捕捉市场趋势。本文将结合 ECharts 的官方文档和实战案例详细讲解如何从零开始构建一个专业的 K 线图。一、K 线图的核心要素K 线图由四个关键数据点构成开盘价Open交易时段开始时的价格收盘价Close交易时段结束时的价格最高价High交易时段内的最高价格最低价Low交易时段内的最低价格在 ECharts 中每个 K 线数据点以数组形式表示[open, close, low, high]。例如[100, 120, 95, 125]表示开盘价 100、收盘价 120、最低价 95、最高价 125 的 K 线。二、基础 K 线图实现步骤1. 引入 ECharts 库通过 CDN 或本地文件引入 EChartsscriptsrchttps://cdn.jsdelivr.net/npm/echarts5.4.2/dist/echarts.min.js/script2. 创建 DOM 容器在 HTML 中定义一个用于渲染图表的容器dividkline-chartstylewidth:800px;height:600px;/div3. 初始化 ECharts 实例通过 JavaScript 初始化图表并绑定容器constchartecharts.init(document.getElementById(kline-chart));4. 配置 K 线图选项核心配置项包括坐标轴、数据系列和样式constoption{xAxis:{type:category,data:[2024-01-01,2024-01-02,2024-01-03],// 日期数据scale:true,// 自动缩放boundaryGap:false// 坐标轴两端不留白},yAxis:{type:value,scale:true// 自动缩放},series:[{type:candlestick,// 指定为 K 线图data:[[100,120,95,125],// 示例数据[120,110,105,122],[110,115,108,118]],itemStyle:{color:#ec0000,// 下跌颜色红色color0:#00da3c,// 上涨颜色绿色borderColor:#8A0000,// 下跌边框色borderColor0:#008F28// 上涨边框色}}]};5. 渲染图表将配置项应用到图表实例chart.setOption(option);三、进阶功能实现1. 数据动态加载通过 AJAX 或 WebSocket 实时获取数据并更新图表// 模拟异步数据加载setTimeout((){constnewData[[115,120,112,122],[120,118,115,125]];chart.setOption({series:[{data:[...option.series[0].data,...newData]}]});},2000);2. 添加数据缩放DataZoom支持用户通过滑块缩放查看不同时间范围的数据option.dataZoom[{type:inside,// 内置型缩放start:0,// 初始起始位置百分比end:50// 初始结束位置百分比},{type:slider,// 滑块型缩放bottom:10,// 距离底部距离start:0,end:50}];3. 添加技术指标如 MA 均线通过额外系列叠加均线数据// 计算 5 日均线functioncalculateMA(data,days){constresult[];for(letidays-1;idata.length;i){letsum0;for(letj0;jdays;j){sumdata[i-j][1];// 使用收盘价计算}result.push(sum/days);}returnresult;}constma5calculateMA(option.series[0].data,5);option.series.push({type:line,name:MA5,data:Array(4).fill(null).concat(ma5),// 前 4 天无数据lineStyle:{color:#FFA500,// 橙色width:2}});4. 自定义提示框Tooltip优化悬浮提示框的显示内容option.tooltip{trigger:axis,axisPointer:{type:cross// 显示十字准星},formatter:function(params){constklineDataparams[0].data;returndiv日期:${params[0].axisValue}/div div开盘:${klineData[0]}/div div收盘:${klineData[1]}/div div最低:${klineData[2]}/div div最高:${klineData[3]}/div;}};四、完整示例代码!DOCTYPEhtmlhtmlheadmetacharsetutf-8titleECharts K 线图示例/titlescriptsrchttps://cdn.jsdelivr.net/npm/echarts5.4.2/dist/echarts.min.js/script/headbodydividkline-chartstylewidth:800px;height:600px;/divscriptconstchartecharts.init(document.getElementById(kline-chart));// 示例数据constklineData[[100,120,95,125],[120,110,105,122],[110,115,108,118],[115,120,112,122],[120,118,115,125],[118,125,117,128],[125,130,122,132]];// 计算 MA5 均线functioncalculateMA(data,days){constresult[];for(letidays-1;idata.length;i){letsum0;for(letj0;jdays;j){sumdata[i-j][1];}result.push(sum/days);}returnresult;}constma5calculateMA(klineData,5);constoption{title:{text:股票价格 K 线图,left:center},tooltip:{trigger:axis,axisPointer:{type:cross},formatter:function(params){constklineDataparams[0].data;returndiv日期:${params[0].axisValue}/div div开盘:${klineData[0]}/div div收盘:${klineData[1]}/div div最低:${klineData[2]}/div div最高:${klineData[3]}/div;}},xAxis:{type:category,data:[2024-01-01,2024-01-02,2024-01-03,2024-01-04,2024-01-05,2024-01-06,2024-01-07],scale:true,boundaryGap:false},yAxis:{type:value,scale:true},dataZoom:[{type:inside,start:0,end:50},{type:slider,bottom:10,start:0,end:50}],series:[{type:candlestick,name:K 线,data:klineData,itemStyle:{color:#ec0000,color0:#00da3c,borderColor:#8A0000,borderColor0:#008F28}},{type:line,name:MA5,data:Array(4).fill(null).concat(ma5),lineStyle:{color:#FFA500,width:2}}]};chart.setOption(option);/script/body/html五、总结通过 ECharts 绘制 K 线图的核心步骤包括准备数据并格式化为[open, close, low, high]数组配置xAxis和yAxis作为坐标轴使用type: candlestick定义 K 线图系列通过itemStyle自定义涨跌颜色添加dataZoom实现缩放功能通过额外系列叠加技术指标如均线ECharts 的灵活配置和丰富交互功能使得开发者能够快速构建出满足专业需求的金融图表。无论是静态展示还是动态数据更新ECharts 都能提供流畅的用户体验。

相关文章:

如何使用 ECharts 绘制 K 线图

在金融数据可视化领域,K 线图(又称蜡烛图)是展示股票、期货等价格走势的核心工具。它通过矩形实体和上下影线直观呈现开盘价、收盘价、最高价和最低价,帮助投资者快速捕捉市场趋势。本文将结合 ECharts 的官方文档和实战案例&…...

JavaScript 如何捕获异常:从基础到进阶的完整指南

在 JavaScript 开发中,异常处理是保证代码健壮性的关键环节。无论是用户输入错误、网络请求失败,还是第三方库的意外行为,都可能导致程序崩溃或行为异常。如何优雅地捕获异常并提供合理的回退方案,是每个开发者必须掌握的技能。 本…...

多年研究图像增强算法,包括但不限于:retinex,gamma,clahe,滤波算法。如果有需要此方面的需要,可以找我哦,理论算法打包带走

多年研究图像增强算法,包括但不限于:retinex,gamma,clahe,滤波算法。如果有需要此方面的需要,可以找我哦,理论算法打包带走...

10类Visdron2019遥感小目标检测数据集该数据集为原始数据集,未经任何图像预处理操作数据集共计8629张图片,分别有对应的标签数据集已划分为训练集、验证集和测试集数据集包括txt格式、

10类Visdron2019遥感小目标检测数据集 该数据集为原始数据集,未经任何图像预处理操作 数据集共计8629张图片,分别有对应的标签 数据集已划分为训练集、验证集和测试集 数据集包括txt格式、xml格式、json格式 相关YOLOv5~YOLOv9模型可直接使用 相关Faster…...

水下珍品目标检测数据集海胆(sea urchin),海参(sea cucumber),扇贝(scallop)总计796张图像,图像大小是1920×1080数据集是YOLO格式和VOC格式可直接

水下珍品目标检测数据集 海胆(sea urchin),海参(sea cucumber),扇贝(scallop) 总计796张图像,图像大小是19201080 数据集是YOLO格式和VOC格式 可直接进行YOLO检测,目前yolov5检测map高达0.91 图像是原始图像,未做清晰化…...

mask rcnn,fasterrcnn,ssd,yolov5,6,7,8在win10,ubuntu环境搭建,代跑数据集,yolov8yolov7Yolov9Yolov10

mask rcnn,fasterrcnn,ssd,yolov5,6,7,8在win10,ubuntu环境搭建,代跑数据集, yolov8 yolov7 Yolov9 Yolov10...

火焰目标检测数据集该数据集为原始数据集,未经任何图像预处理操作数据集共计8869张图片,分别有对应的标签数据集已划分为训练集、验证集和测试集训练集有图片7767张图片、验证集730张图片、测试

火焰目标检测数据集 该数据集为原始数据集,未经任何图像预处理操作 数据集共计8869张图片,分别有对应的标签 数据集已划分为训练集、验证集和测试集 训练集有图片7767张图片、验证集730张图片、测试集372张图片 数据集包括txt格式、xml格式、json格式 相…...

2026最权威的十大AI科研工具实测分析

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek AI技术于毕业论文写作里的应用愈发广泛,借助大语言模型,学生能够在选…...

SAP PP顾问必看:手把手教你用增强PPCO0001实现CO02工单变更记录(附完整ABAP代码)

SAP PP顾问实战:深度解析PPCO0001增强实现CO02工单变更审计 在制造业SAP实施项目中,生产工单的变更追踪一直是合规审计的重点难点。当用户通过CO02事务码修改工单时,标准系统提供的变更记录功能存在明显局限——既无法满足精细审计需求&…...

别再乱用ROS2的QoS了!深入DDS底层,搞懂Reliability和Deadline到底怎么选

别再乱用ROS2的QoS了!深入DDS底层,搞懂Reliability和Deadline到底怎么选 在机器人系统开发中,数据传输的实时性和可靠性往往是一对难以调和的矛盾。当你的ROS2节点在复杂网络环境中频繁丢包,或者关键控制指令无法及时送达时&…...

OpenFBX:轻量级FBX文件解析的终极解决方案

OpenFBX:轻量级FBX文件解析的终极解决方案 【免费下载链接】OpenFBX Lightweight open source FBX importer 项目地址: https://gitcode.com/gh_mirrors/op/OpenFBX OpenFBX是一款轻量级开源FBX导入工具,专为解决3D开发中FBX文件解析难题而设计。…...

轨道角动量OAM超表面与自旋-轨道角动量耦合结构设计的FDTD仿真案例

轨道角动量 OAM 超表面 自旋-轨道角动量耦合结构设计 fdtd仿真 复现2017 OE:Spin-to-orbital angular momentum conversion in dieletric metasurface 介绍:自旋-轨道角动量转换超表面,入射自旋角动量光束,即左右旋圆偏振光时&…...

贾子科学定理(Kucius Science Theorem):确立确证性原则的科学判定新范式

贾子科学定理(Kucius Science Theorem):确立确证性原则的科学判定新范式摘要贾子科学定理由学者贾子邓于2026年提出,基于东方智慧与系统科学,确立四大核心定律:真理硬度定律(科学即特定边界内永…...

贾子科学定理(Kucius Science Theorem):以“公理驱动”重构科学划界

贾子科学定理(Kucius Science Theorem):以“公理驱动”重构科学划界摘要: 贾子科学定理于2026年提出,挑战波普尔“可证伪性”标准,主张科学的客观标尺应为“公理驱动可结构化”。其TMM三层体系确立真理、模…...

贾子科学定理(Kucius Science Theorem):挑战证伪主义、重构“绝对真理”的科学哲学新论

贾子科学定理(Kucius Science Theorem):挑战证伪主义、重构“绝对真理”的科学哲学新论 摘要 贾子科学定理旨在系统批判波普尔的证伪主义,指出其存在逻辑悖论与文化霸权缺陷。该理论提出科学是“公理驱动、可结构化”的绝对真理…...

完美架构的设计哲学与实践方法论

“完美架构不是设计出来的,是演化出来的。核心是高内聚低耦合 开闭原则 依赖倒置。抓住三个关键点:边界清晰、变化隔离、可测试。沟通上用架构图 契约测试对齐认知,代码组织遵循六边形架构,调试建立可观测性体系。”一、完美架…...

避坑指南:用ArcGIS批量裁剪TIFF时,如何确保输出范围和命名不混乱?

ArcGIS批量裁剪TIFF实战:精准控制输出范围与命名的进阶技巧 当你面对数百个TIFF文件需要批量裁剪时,ArcGIS的ModelBuilder本应是效率神器,但实际使用中却常常遇到输出范围错乱、命名重复甚至文件丢失的窘境。我曾在一个遥感数据处理项目中&am…...

Mem Reduct多语言界面配置指南:跨平台语言适配与企业级部署方案

Mem Reduct多语言界面配置指南:跨平台语言适配与企业级部署方案 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduc…...

PHP反序列化漏洞实战:从NewStarCTF题目看私有属性的坑

PHP反序列化漏洞实战:私有属性处理中的隐藏陷阱 在CTF竞赛和实际渗透测试中,PHP反序列化漏洞一直是Web安全领域的重点研究对象。而其中关于类属性可见性(特别是private修饰符)的处理机制,往往成为解题的关键突破口。去…...

SA8775学习笔记(一)一颗 SA8775P,能不能撑起舱驾一体?从架构到实战彻底讲透(多屏+多摄+AI+安全全解析)

🚗🔥 一颗 SA8775P,能不能撑起舱驾一体?从架构到实战彻底讲透(多屏+多摄+AI+安全全解析) 🧩 一、先说结论:SA8775P不是“更强”,而是在重构整车电子架构 如果从参数看 SA8775P,很容易误判它只是“性能更强的一颗芯片”。 但放到真实整车架构里,它干的事情其实是:…...

车规 vs 工规:智能座舱到底有没有“必要上车规”?一篇讲透成本、风险与真实行业做法

🚗 车规 vs 工规:智能座舱到底有没有“必要上车规”?一篇讲透成本、风险与真实行业做法 在汽车电子领域,“车规器件”几乎成了默认选项。但随着智能座舱算力暴涨、成本压力加剧,一个现实问题正在被越来越多团队重新审视: 中控、TBOX、娱乐系统,是否必须全面车规? 这不…...

2026大数据寒冬实锤:Spark/Flink批量优化裁员,AI For Data 流水线上线,3人干原来10人活 【Java PyTorch深度学习】PyTorch On Java避险涨薪全攻略

2026大数据寒冬实锤:Spark/Flink批量优化裁员,AI For Data流水线上线,3人干原来10人活 【Java PyTorch深度学习】PyTorch On Java避险涨薪全攻略 2026年大数据行业彻底迎来洗牌寒冬,曾经吃香的Spark调优、Flink实时开发岗位正在大…...

UVM调试利器:print_topology()与factory.print()的实战应用

1. UVM调试利器:print_topology()与factory.print()的核心价值 在UVM验证环境中,调试就像是在迷宫里找路,而print_topology()和factory.print()就是你的手电筒和地图。这两个函数我用了快八年,每次遇到环境结构问题都能帮我省下至…...

终极GTA V安全防护与游戏体验增强工具完整指南

终极GTA V安全防护与游戏体验增强工具完整指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu 在《GTA V…...

编译原理期末考后复盘:从NFA到DFA最小化,我的Hopcroft算法实战笔记

编译原理期末考后复盘:从NFA到DFA最小化,我的Hopcroft算法实战笔记 刚走出编译原理考场,那种既紧张又兴奋的感觉还萦绕在心头。作为计算机专业的核心课程,编译原理向来以理论抽象、算法复杂著称,而今天的期末考试恰好验…...

29_Z变换在工程中的实际意义

Z变换的基础概念 提出背景 引用场合 条件优势 为甚要Z变换? Z变换应对什么场合 机械系统 电气系统 Z变换的C语言代码(源代码) Z变换的C语言代码(库函数) 泰勒级数在Liunx中 安装库命令 xxx xxx xxx 什么文件路径下 xxx…...

智能意图识别的技术突破:Intent-Model从原理到实践的深度解析

智能意图识别的技术突破:Intent-Model从原理到实践的深度解析 【免费下载链接】intent-model 项目地址: https://ai.gitcode.com/hf_mirrors/Danswer/intent-model 问题导入:当用户查询遇上语义理解的鸿沟 在数字化服务的前沿阵地,用…...

Axure RP界面语言模块本地化适配指南:从环境配置到效能优化

Axure RP界面语言模块本地化适配指南:从环境配置到效能优化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 在全球化…...

2025 年12月 1日KB5070311(操作系统内部版本26200.7309和26100.7309)预览 版

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...

2025 年12月9日-KB5072033(操作系统内部版本 26200.7462和26100.7462)

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...