如何用Vue3和Plotly.js实现一个动态3D图的在线展示

Alt

本文由ScriptEcho平台提供技术支持

项目地址:传送门

基于 Plotly.js 的交互式图表动画

应用场景

本代码演示了如何使用 Plotly.js 创建交互式图表动画,其中一个区域填充的区域在给定时间间隔内更新其数据。这种动画可用于可视化时间序列数据或展示数据模式的变化。

基本功能

该代码使用 Plotly.js 创建了一个图表,其中包含两个跟踪:一个显示 Apple 股票的最高价,另一个显示最低价。图表以动画的形式显示,其中区域填充的区域从左到右移动,显示不同时间间隔内的股票价格。用户可以通过播放和暂停按钮控制动画。

功能实现步骤及关键代码分析

1. 加载 Plotly.js 和 D3.js
await loadJavascript('https://registry.npmmirror.com/d3/3.5.17/files/d3.min.js')
import Plotly from 'plotly.js-dist'

首先,代码加载了 Plotly.js 和 D3.js 库,它们是创建交互式图表的必要库。

2. 加载数据
d3.csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv', function (err, rows) {// ...
})

代码使用 D3.js 的 d3.csv() 方法加载 Apple 股票的 CSV 数据文件。

3. 创建帧
var frames = []
// ...

代码创建了一个 frames 数组,其中每个元素都包含一个数据对象。每个数据对象代表图表在不同时间点的数据。

4. 创建跟踪
var trace2 = {// ...
}
var trace1 = {// ...
}

代码创建了两个跟踪:trace1 显示最低价,trace2 显示最高价。

5. 创建布局
var layout = {// ...
}

代码创建了一个布局对象,其中包含图表的标题、轴范围和图例。

6. 创建动画
Plotly.newPlot('myDiv', data, layout).then(function () {Plotly.addFrames('myDiv', frames)
})

代码使用 Plotly.js 的 newPlot() 方法创建图表,并使用 addFrames() 方法添加帧。

7. 添加播放/暂停按钮
var updatemenus = [{// ...},
]

代码添加了一个更新菜单,其中包含播放和暂停按钮。这些按钮允许用户控制动画。

总结与展望

开发过程中的经验与收获

开发这段代码的主要收获是了解如何使用 Plotly.js 创建交互式图表动画。我学到了如何使用帧来创建动画效果,以及如何使用 D3.js 加载数据。

未来卡片功能的拓展与优化

未来,该卡片功能可以进一步扩展和优化,例如:

  • 添加更多数据源,例如其他股票或经济指标。

  • 允许用户自定义动画速度和范围。

  • 集成其他交互式功能,例如缩放和平移。

    更多组件:

    在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/46ac11404a0e454bafe1473425ffbd60.jpeg#pic_center)
</a>

获取更多Echos

本文由ScriptEcho平台提供技术支持

项目地址:传送门

扫码加入AI生成前端微信讨论群:

扫码加入群聊

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

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

相关文章

centOS7网络配置_NAT模式设置

第一步&#xff1a;查看电脑网卡 nat模式对应本地网卡的VMnet 8 &#xff0c;查看对应的IP地址。 第二步&#xff1a;虚拟网络编辑器 打开VMWare&#xff0c;编辑--虚拟网络编辑器&#xff0c;整个都默认设置好了&#xff0c;只需要查看对应的DHCP设置中对应的IP的起始&#…

算法金 | 没有思考过 Embedding,不足以谈 AI

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 抱个拳&#xff0c;送个礼 在当今的人工智能&#xff08;AI&#xff09;领域&#xff0c;Embedding 是一个不可或缺的概念。如果你没有…

Python学习笔记24:进阶篇(十三)常见标准库使用之数据压缩功能模块zlib,gzip,bz2,lzma的学习使用

前言 本文是根据python官方教程中标准库模块的介绍&#xff0c;自己查询资料并整理&#xff0c;编写代码示例做出的学习笔记。 根据模块知识&#xff0c;一次讲解单个或者多个模块的内容。 教程链接&#xff1a;https://docs.python.org/zh-cn/3/tutorial/index.html 数据压缩…

2024年度临沂市安全文化书画摄影展开幕

人海信息网山东讯 6月27日&#xff0c;2024年度临沂市安全文化书画摄影作品展&#xff0c;在临沂高新区隆重开幕。本次书画摄影展深入贯彻“以人为本&#xff0c;安全发展”的重要思想&#xff0c;立意高远&#xff0c;内涵丰富&#xff0c;思想深邃&#xff0c;承载着健康、幸…

List常用操作比for循环更优雅的写法

private String name; //姓名 private Integer age; //年龄 private Integer departId; //所属部门id } List list new ArrayList<>(); 复制代码 简单遍历 使用lamada表达式之前&#xff0c;如果需要遍历list时&#xff0c;一般使用增强for循环&#xff0c;代码如…

【AIGC】《AI-Generated Content (AIGC): A Survey》

文章目录 相关概念What is AI-generated content?Necessary conditions of AIGCHow can AI make the content better?The industrial chain of AIGCAdvantages of large-scale pre-trained modelsGeneration of smart textPros of AIGCCons of AIGCAIGC and Metaverse 挑战潜…

制作高校专属PPT时,如何将校徽设置成透明底色?无须PS

目录 示例&#xff1a;以清华大学为例 1必应搜索“清华大学校徽” 2保存清华大学校徽及校名。 3将校徽导入到PPT中 ​4 选中校徽&#xff0c;然后依次选择“图片格式”-->颜色-->设置透明色​编辑 5出现“画笔”&#xff0c;由于截图的缘故&#xff0c;画笔没有在截…

002关于Geogebra软件的介绍及与MatLab的区别

为什么要学Geogebra&#xff1f; 因为和MatLab的科学计算相比&#xff0c;GeoGebra重点突出教学展示&#xff0c;对于教师、学生人群来讲再合适不过了&#xff0c;尤其是可以融入到PPT里边呈现交互式动画&#xff0c;想想听众的表情&#xff01;这不就弥补了看到PPT播放数学公…

谷歌SEO在外贸推广中的应用效果如何?

谷歌SEO在外贸推广中非常有效。通过优化网站&#xff0c;可以提高在搜索结果中的排名&#xff0c;这意味着更多的潜在客户会看到你的产品和服务。 一个高排名的网站能带来更多自然流量&#xff0c;不需要花费广告费用。这种流量通常质量较高&#xff0c;因为用户是主动搜索相关…

[AIGC] Doris:一款高效的MPP数据仓库引擎

在大数据处理的领域中&#xff0c;Apache Doris&#xff08;原百度 Palo&#xff09;是一个高效的MPP&#xff08;大规模并行处理&#xff09;数据仓库&#xff0c;最初由百度开发&#xff0c;现在已经成为Apache的孵化项目。 (图片取自百度) – 文章目录 1. Doris的基础知识…

第三十五篇——奥卡姆剃刀法则:最简单的往往是最有效的

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 对于奥卡姆剃刀的理解&#xff0c;之前没有这么详细的了解过&#xff0c;…

妙手ERP正式接入Lazada 3PF,支持批量设置产品库存,管理多仓发货

Lazada平台近期又有大动作&#xff0c;上线了3PF一店多运模式&#xff01; 一、Lazada 3PF一店多运模式 在介绍3PF一店多运模式前&#xff0c;要先说明一下原有的Lazada履约模式&#xff0c;此前&#xff0c;Lazada为跨境商家提供两大类物流履约方案&#xff1a; 一类&#x…

O_CREAT创建函数的例子

代码&#xff1a; #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> int main(void) {int fd-1;char filename[]"test.txt";fdopen(filename,O_RDWR|O_CREAT|O_EXCL,S_IRWXU);if(-1fd){printf("F…

java基于ssm+jsp 仓库智能仓储系统

1管理员功能模块 管理员登录&#xff0c;通过填写用户名、密码等信息&#xff0c;输入完成后选择登录即可进入智能仓储系统 &#xff0c;如图1所示。 图1管理员登录界面图 智能仓储系统 &#xff0c;在智能仓储系统可以查看个人中心、公告信息管理、员工管理、供应商管理、商…

【Redis】三大Redis内存分析工具介绍(Redisinsight、RDR、RMA)

一、RedisInsight工具介绍 RedisInsight是一款Redis官方开源的可视化管理工具&#xff0c;旨在帮助开发人员和管理员更轻松地设计、开发和优化Redis应用程序。以下是关于RedisInsight的详细介绍&#xff1a; 1、工具概述 定义&#xff1a;RedisInsight是一个直观且高效的Red…

C++ ─── vector模拟实现的扩容拷贝问题

扩容拷贝问题 源代码使用memcpy拷贝&#xff0c;在使用vector<int>存储内置类型时没有问题&#xff0c; 但是如果存储的是含有指针的类型&#xff0c;如string&#xff0c;就会发生浅拷贝问题 //3、容量相关void reserve(size_t n){if (n > capacity()){size_t old_si…

2、数据库模型图、er图

关系 user和administarators是多对一的关系 user和order是一对多的关系 shipped和order是多对一的关系 order和books是多对多的关系 leavewords和order是一对一的关系 stock和books是一对多的关系 Chens 数据库表示法——ER图 Crows Foot数据库表示法——数据库模型图 Navicat表…

RK3568开发笔记(三):瑞芯微RK3588芯片介绍,入手开发板的核心板介绍

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139905873 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

防火墙双双机热备

设备直路部署&#xff0c;上下行连接交换机 如 图所示&#xff0c;DeviceA和DeviceB的业务接口都工作在三层&#xff0c;上下行分别连接二层交换机。上行交换机连接运营商的接入点&#xff0c;运营商为企业分配的IP地址为1.1.1.3和1.1.1.4。现在希望DeviceA和DeviceB以负载分担…

uview中的utabs组件item字数不一致导致滑块偏移

给item单独设置宽度&#xff0c;使滑块计算准确 ::v-deep .u-scroll-box .u-tab-item {width: 80px !important;&:nth-child(3),&:nth-child(4),&:nth-child(5) {width: 60px !important;}flex: 1 1 0% !important; }效果如下&#xff1a;