Vue ECharts line3D点击空白处重置图表视角- 附完整示例

ECharts:一个基于 JavaScript 的开源可视化图表库。

目录

效果

 一、介绍

 1、官方文档:Apache ECharts

2、官方示例

二、准备工作

1、安装依赖包

 2、示例版本 

三、使用步骤

1、在单页面引入 ' echarts '

2、指定容器并设置容器宽高

3、数据处理(关键点)

        1)数据格式为一维数组  

        2)x、y、z轴设置axisLabel的margin

        3)监听“空白处”的事件 - 点击“空白处”的时候重置图表

四、完整示例


效果

 一、介绍

 1、官方文档:Apache ECharts

Apache EChartsApache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。https://echarts.apache.org/zh/index.html

2、官方示例

二、准备工作

1、安装依赖包

npm install echarts echarts-gl --save

 2、示例版本 

"echarts": "^5.4.2",
"echarts-gl": "^2.0.9",

注:3D图表需要安装   "echarts-gl",切记

三、使用步骤

1、在单页面引入 ' echarts '

import * as echarts from "echarts";

注:上面的代码会引入 ECharts 中所有的图表和组件,如果你不想引入所有组件,也可以使用 ECharts 提供的按需引入的接口来打包必须的组件。详见官方文档:在项目中引入 ECharts - 入门篇 - Handbook - Apache ECharts

2、指定容器并设置容器宽高

<template><div id="main"></div>
</template><script>import * as echarts from "echarts";export default {name: "mutiYAxis",data() {return {};},methods: {initChart() {let data = this.datalet chartDom = document.getElementById("main");let myChart = echarts.init(chartDom);let option;...详见完整示例   },},};
</script><style scoped>#main {width: 1000px;height: 500px;}
</style>

3、数据处理(关键点)

        1)数据格式为一维数组  
[[1.25,0,0],[0.6648083899854317,1.0353777219787,0.2244367291811391],[-0.48889458931439583,1.068254166584824,0.5702471407416707],[-1.0809033510776862,0.1540790360935266,1.1398102439909492],[-0.650032792305071,-0.7526218011559339,2.000488320197701],[0.2547247747068576,-0.8611009233593129,3.1740848966345796],[0.7849024914214132,-0.22841148463694622,4.633432549928953],[0.5771151343572326,0.5029258196352845,6.306644538830419],[-0.1091605463221669,0.7422602172849531,8.088364896663746],[-0.7052790532756156,0.3190087600728554,9.85625637256739],[-0.6991599213595703,-0.45330790513892094,11.490145900584054],[0.004065150973672331,-0.9185243034653587,12.890831379309573],[0.8578295942092691,-0.5454594645776986,13.995606548843941],[1.0090791801824923,0.4672249852307217,14.788074361226283],[0.16270461078510265,1.178730899762885,15.300713076801252],[-0.9405668342457869,0.80511900322781,15.609793498951996],[-1.1961396322597975,-0.3595981394199102,15.823442787056548],[-0.33596891645118115,-1.1738470535820111,16.064722830628625],[0.764879924501324,-0.8699084264271705,16.45237137611818],[1.0588477255161683,0.16051016617013988,17.08221987112051],[0.3968325245712395,0.8877782253688824,18.012196086186695],[-0.48103554848031876,0.734781092044553,19.253258565837005],[-0.8030631267668673,-0.007108438577899955,20.767681644172168],[-0.4042968487238494,-0.6420852869061568,22.474959415784156],[0.3190650369180267,-0.6811708936747477,24.264404705511872]
]
        2)x、y、z轴设置axisLabel的margin
        xAxis3D: {axisLabel: {margin: 5}},yAxis3D: {axisLabel: {margin: 10}},zAxis3D: {axisLabel: {margin: 20}},

注:如果不分别设置会出现重叠的情况,如下图所示

下图是设置了效果

        3)监听“空白处”的事件 - 点击“空白处”的时候重置图表视角

事件与行为 - 概念篇 - 使用手册 - Apache ECharts

Documentation - Apache ECharts

myChart.getZr().on('click', event => {// 没有 target 意味着鼠标/指针不在任何一个图形元素上,它是从“空白处”触发的。if (!event.target) {// 点击在了空白处,重置图表视角。option.grid3D.viewControl.alpha = 20;option.grid3D.viewControl.beta = 40;myChart.setOption(option);}})

四、完整示例

<template><div class="line3D"><div id="main"></div></div>
</template><script>
import * as echarts from 'echarts';
import 'echarts-gl';
export default {name: "line3D",data() {return {};},mounted() {this.$nextTick(() => {this.initChart();});},methods: {initChart() {let chartDom = document.getElementById("main");let myChart = echarts.init(chartDom);let option;let data = [];for (let t = 0; t < 25; t += 1) {let x = (1 + 0.25 * Math.cos(75 * t)) * Math.cos(t);let y = (1 + 0.25 * Math.cos(75 * t)) * Math.sin(t);let z = t + 2.0 * Math.sin(75 * t);data.push([x, y, z]);}console.log(data);option = {tooltip: {trigger: 'item',},backgroundColor: '#fff',visualMap: {show: false,dimension: 2,min: 0,max: 30,inRange: {color: ['#313695','#4575b4','#74add1','#abd9e9','#e0f3f8','#ffffbf','#fee090','#fdae61','#f46d43','#d73027','#a50026']}},grid3D: {boxWidth: 200 // 控制立体空间的大小},viewControl: {distance: 150 // 调节视角与物体之间的距离},xAxis3D: {type: 'value',name: 'X',nameGap: 30,axisLabel: {margin: 5}},yAxis3D: {type: 'value',name: 'Y',nameGap: 30,axisLabel: {margin: 10}},zAxis3D: {type: 'value',name: 'Z',nameGap: 30,axisLabel: {margin: 20}},grid3D: {viewControl: {projection: 'orthographic'}},series: [{type: 'line3D',data: data,lineStyle: {width: 4}}],};option && myChart.setOption(option);myChart.getZr().on('click', event => {// 没有 target 意味着鼠标/指针不在任何一个图形元素上,它是从“空白处”触发的。if (!event.target) {// 点击在了空白处,重置图表。option.grid3D.viewControl.alpha = 20;option.grid3D.viewControl.beta = 40;myChart.setOption(option);}})},},
};
</script><style lang="less" scoped>
#main {width: 1000px;height: 500px;
}
</style>

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

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

相关文章

leetcode 热题 100_反转链表

题解一&#xff1a; 迭代&#xff1a;逐步修改节点指针&#xff0c;注意在修改前要保存下一个节点指针。 class Solution {public ListNode reverseList(ListNode head) {ListNode pre null;while (head! null) {ListNode temp head.next;head.next pre;pre head;head te…

使用Canvas绘制一个自适应长度的折线图

要求x轴根据数据长度自适应 y轴根据数据最大值取长度值 <template><div ref"cvsContainer" class"cvs-container"><canvas ref"cvs" class"canvas"></canvas></div> </template><script set…

Chapter20-Ideal gases-CIE课本要点摘录、总结

20.1 Particles of a gas Brownian motion Fast modules 速率的数值大概了解下&#xff1a; average speed of the molecules:400m/s speed of sound:approximately 330m/s at STP&#xff08;standard temperature and pressure&#xff09; Standard Temperature and Pres…

计算表达式x*(2^i)的值math.ldexp(x, i)

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算表达式x*(2^i)的值 math.ldexp(x, i) [太阳]选择题 关于以下代码输出的结果说法正确的是&#xff1f; import math print("【执行】math.ldexp(3,2)") print(math.ldexp(3,2)) …

HTML5+CSS3+移动web——CSS基础

系列文章目录 HTML5CSS3移动web——HTML 基础-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136070953?spm1001.2014.3001.5501HTML5CSS3移动web——列表、表格、表单-CSDN博客https://blog.csdn.net/ymxk2876721452/article/details/136221443?spm1001.2…

【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…

wordpress博客趣主题个人静态网页模板

博客趣页面模板适合个人博客&#xff0c;个人模板等内容分享。喜欢的可以下载套用自己熟悉的开源程序建站。 博客趣主题具有最小和清洁的设计&#xff0c;易于使用&#xff0c;并具有有趣的功能。bokequ主题简约干净的设计、在明暗风格之间进行现场切换。 下载地址 清新个人…

【金三银四】Spring面试题

目录 1、什么是Spring2、说一下Spring的IOC3、Spring的AOP4、连接点&#xff1f;切入点&#xff1f;5、Spring AOP 是通过什么实现的6、Spring Bean的生命周期是怎么样的&#xff1f;7、Spring Bean的初始化过程是怎么样8、Spring的事务传播机制有哪些&#xff1f;9、Autowired…

割点原理及封装好的割点类

作者推荐 视频算法专题 预备知识 本分析针对&#xff1a;连通无向图G。 搜索树 节点的父子关系&#xff1a;任意 节点的邻接 节点除了已处理 节点&#xff0c;都是它的子 节点。 以任意一点为根开始DFS&#xff0c;计算所有 节点的父子关系。只保留个子 节点到父 节点形成…

Visual Studio单步调试中监视窗口变灰的问题

在vs调试中&#xff0c;写了这样一条语句 while((nfread(buf, sizeof(float), N, pf))>0) 然而&#xff0c;在调试中&#xff0c;只要一执行while这条语句&#xff0c;监视窗口中的变量全部变为灰色&#xff0c;不能查看&#xff0c;是程序本身并没有报错&#xff0c;能够继…

Python编程与人工智能应用 MOOC题目

第二次作业 1. 2. . 3.考察“字符串的这些api函数均是提供一个拷贝本”的知识点。 4.这边的2别忘&#xff0c;前闭后开区间&#xff0c;否则对于121这样会认为是质数&#xff08;11*11&#xff09;

VMware 集群-虚拟机配置反亲和性(互斥)

简介 博客&#xff1a;https://songxwn.com/ 为实现应用系统的冗余&#xff0c;经常会双机或者多机部署&#xff08;如数据库集群等&#xff09;。在VMware 集群里面&#xff0c;要保证不同应用集群的节点虚拟机在不同的物理宿主机上&#xff0c;防止单个宿主机故障&#xff…

开发指南004-@Query参数写法

JPA的Query注解和函数参数的绑定有多种写法&#xff0c;总结如下&#xff1a; 1、使用:形参名 2、使用?数值,数值表示形参位置,1表示第一个形参,依次类推 3、使用Param("参数名"):参数名 4、获取实体类名称,使用#{#entityName}

在高并发、高性能、高可用 三高项目中如何设计适合实际业务场景的分布式id(一)

分布式ID组件&#xff1a;黄金链路上的关键基石 在现代分布式系统中&#xff0c;分布式ID组件无疑扮演着至关重要的角色。作为整个系统的黄金链路上的关键组件&#xff0c;它的稳定性和可靠性直接关乎到整个系统的正常运作。一旦分布式ID组件出现问题&#xff0c;黄金链路上的…

HTML静态网页成品作业(HTML+CSS)——阜阳剪纸介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

对NENU研究生教务系统网站做自动化测试

由上一篇博客可知&#xff08;解决NENU研究生教务系统网站“不能创建对象”等兼容性问题-CSDN博客&#xff09;&#xff0c;我通过Tampermonkey脚本解决了NENU研究生教务系统网站在非IE内核浏览器中访问时“不能创建对象”的问题。 在解决问题的过程中&#xff0c;为了Tampermo…

外卖平台订餐流程架构的实践

当我们想要在外卖平台上订餐时&#xff0c;背后其实涉及到复杂的技术架构和流程设计。本文将就外卖平台订餐流程的架构进行介绍&#xff0c;并探讨其中涉及的关键技术和流程。 ## 第一步&#xff1a;用户端体验 用户通过手机应用或网页访问外卖平台&#xff0c;浏览菜单、选择…

010Editor汉化版+下载+注册码+模板bug

项目场景&#xff1a; 这天我想使用我的不知名的一个破解版本的010Edit来查看一个EXE程序&#xff0c;并想使用模板功能&#xff0c;但是发现没有该模板还无法下载最新模板 问题描述 010Edit联网后需要注册码&#xff1a; 010 Editor 激活码生成器 使用方法 参照教程使用0…

GitHub Desktop的常用操作【图形化】

文章目录 【1】仓库的创建和删除【2】文件操作【3】分支原理与分支操作1.分支创建2.分支合并 【4】标签 【1】仓库的创建和删除 在本地创建一个新的仓库&#xff1a; 然后输入仓库的名称&#xff0c;描述&#xff0c;并选择路径&#xff1a; 点击完后就发现我们的仓库创建好…

RocketMQ存储设计深度解析

引言 在分布式系统中&#xff0c;消息中间件扮演着至关重要的角色&#xff0c;它负责系统间异步消息的传递&#xff0c;确保信息可靠传输。Apache RocketMQ&#xff08;以下简称RocketMQ&#xff09;是这一领域中的一个优秀代表。RocketMQ以其高性能、高可靠性和高扩展性赢得了…