vue echarts 三维折线图

2023-11-09

效果图:
在这里插入图片描述

<template>
  <div  id="main" style="width: 900px;height: 600px"></div>
</template>

<script>
import * as echarts from 'echarts';
import 'echarts-gl'
export default {
  name: "hello",
  mounted() {
   this.drewLine()
  },
  methods:{
    drewLine(){
      let data = [
        [0,0,0,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1],
        [0,0,1,1,5,7,9,11,12,13,17,17, 17,17,17,17,17,17,17,17,17,17],
        [5,6,9,9,9,11,11,11,13,13,14,14, 14,16,16,16,16,16,18,18,18,18],
        [13,17,22,22,26,33,34,36,36, 37,39,40,40,42,42,42,43,43,44,44,44,44],
        [13,16,17,27,35,45, 49,53,58,61,65,66,68, 69,71,73,73,73,74,74,74,74]
      ]
      let dataX = ['1/27', '1/28','1/29','1/30','1/31','2/1','2/2','2/3','2/4','2/5','2/6','2/7','2/8','2/9','2/10','2/11','2/12','2/13','2/14','2/15','2/16','2/17']
      let dataY = ['生产','收购','运输','销售','消费']
      var vdata = []
      for (var i=0;i<dataY.length;i++){
        vdata[i] = []
      }
      for(var t=0;t<dataY.length;t++){
        var y = dataY[t];
        for(var k=0;k<data[0].length;k++){
          for(var p=0;p<dataX.length;p++){
            var x = dataX[p];
            var z = data[t][p];
            vdata[t].push([x,y,z]);
          }
          break;
        }
      }
      var chart = echarts.init(document.getElementById('main'));
      chart.setOption({
        xAxis3D: {
          type: 'category',
          name: '',
          data: dataX,
          axisLabel:{
            show: true,
            interval: 0  //使x轴都显示
          }
        },
        yAxis3D: {
          type: 'category',
          name: '',
          data: dataY,
          axisLabel:{
            show: true,
            interval: 0   //使y轴都显示
          }
        },
        zAxis3D: {
          type: 'value',
          name: ''
        },
        //图例
        legend: {
          orient: 'vertical',
          right: 50,
          top: 200,
          icon: 'roundRect',
          textStyle:{
            color: '#2c3e50'
          }
        },
        tooltip:{
          show:true
        },
        grid3D: {
          boxWidth: 300,
          boxHeight:120,
          boxDepth: 200,
          axisLine: {
            show: true,
            interval: 0,
            lineStyle: {
              color: '#2c3e50'
            }
          },
          viewControl: {
            distance: 400
          }
        },
        series:[
          {
            type: 'scatter3D',
            name: '生产',
            itemStyle: {
              color: 'rgb(165,  0, 38)'
            },
            label: {  //当type为scatter3D时有label出现
              show: true,
              position: 'top',   //标签的位置,也就是data中数据相对于线在哪个位置
              distance: 0,
              textStyle: {
                color: '#2c3e50',
                fontSize: 12,
                borderWidth: 0,
                borderColor: '#2c3e50',
                backgroundColor: 'transparent'
              }
            },
            data: vdata[0]
          },
          {
            type: 'scatter3D',
            name: '收购',
            itemStyle:{
              color: 'rgb(215, 48, 39)'
            },
            label: {
              show:true,
              position: 'bottom',
              distance : 0,
              textStyle: {
                color: '#2c3e50',
                fontSize: 12,
                borderWidth: 0,
                borderColor: '#2c3e50',
                backgroundColor: 'transparent'
              }
            },
            data:vdata[1]
          },
          {
            type: 'scatter3D',
            name: '运输',
            itemStyle:{
              color: 'rgb(254,224,144)'
            },
            label: {
              show:true,
              position: 'bottom',
              distance : 0,
              textStyle:{
                color:'#2c3e50',
                fontSize: 12,
                borderWidth: 0,
                borderColor: '#2c3e50',
                backgroundColor: 'transparent'
              }
            },
            data:vdata[2]
          },
          {
            type: 'scatter3D',
            name: '销售',
            itemStyle:{
              color: 'rgb(255,255,191)'
            },
            label: {
              show:true,
              position: 'top',
              distance : 0,
              textStyle:{
                color:'#2c3e50',
                fontSize: 12,
                borderWidth: 0,
                borderColor: '#2c3e50',
                backgroundColor: 'transparent'
              }
            },
            data:vdata[3]
          },
          {
            type: 'scatter3D',
            name: '消费',
            itemStyle: {
              color: 'rgb(224,243,248)'
            },
            label: {
              show: true,
              position: 'bottom',
              distance: 0,
              textStyle: {
                color: '#2c3e50',
                fontSize: 12,
                borderWidth: 0,
                borderColor: '#2c3e50',
                backgroundColor: 'transparent'
              }
            },
            data: vdata[4]
          },
          {
            type: 'line3D', //当type为line3D时有label没有作用,官网没有label这个配置项
            name: '生产',
            lineStyle: {
              width: 8,   //线的宽度
              color: 'rgb(165,  0, 38)'   //线的颜色
            },
            data:vdata[0]   //线数据和点数据所需要的格式一样
          },
          {
            type: 'line3D',
            name: '收购',
            lineStyle: {
              color: 'rgb(215, 48, 39)',  //线的颜色
              width: 8     //线的宽度
            },
            data:vdata[1]
          },
          {
            type: 'line3D',
            name: '运输',
            lineStyle: {
              color: 'rgb(254,224,144)',
              width: 8
            },
            data:vdata[2]
          },
          {
            type: 'line3D',
            name: '销售',
            lineStyle: {
              color: 'rgb(255,255,191)',
              width: 8
            },
            data:vdata[3]
          },
          {
            type: 'line3D',
            name: '消费',
            lineStyle: {
              color: 'rgb(224,243,248)',
              width: 8
            },
            data:vdata[4]
          },
        ]
      })
      window.addEventListener('resize', function () {
        chart.resize();
      });
    }
  }
}
</script>

<style scoped>
.div{
  background-color: #2c3e50;
}
</style>```

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue echarts 三维折线图 的相关文章

  • 解决vxe-table复选框翻页选中问题

    解决vxe table复选框翻页选中问题 根据vxe table官方文档 想要保留勾选中的数据 我们的代码中需要设置 row id 和 checkbox config中的 reserve 属性 vxe table官方文档 简单写下html部
  • java上传图片、文件和富文本内容到服务器上,查看和删除文件

    1 上传富文本内容 前端的富文本内容传到后端 将富文本内容拼接成html页面代码 将内容转换成html文件上传到服务器指定位置进行存储 String profile data xiangmu linux服务器上项目文档存放目录 String
  • 5 款最棒的 Vue 移动端 UI 组件库 - 特别针对国内使用场景推荐

    本文完整版 最棒的 Vue 移动端 UI 组件库 特别针对国内使用场景推荐 Vue 移动端 UI 组件库推荐 Vant 3 有赞移动 UI 组件库 支持 Vue 3 微信小程序 支付宝小程序 Cube UI 滴滴出行移动端 UI 库 质量可
  • ip正则表达式

    var Sip rule value callback gt if 2 5 0 5 0 4 d 0 1 d 1 2 2 5 0 5 0 4 d 0 1 d 1 2 3 test value false callback new Error
  • 微信pc端浏览器打开页面空白的问题

    今天写了一个web项目 用chrome浏览器 手机端微信你打开都没问题 但是在pc端微信打开后是空白的 于是我重新做了一个空白的vue项目 用pc端微信浏览器是可以打开的 慢慢调试发现是语法的问题 一步一步减去组件 再一步一步加上组件 最终
  • vue 表格表头内容居中

    放入
  • 8.全配置自动生成模块前后端

    文章目录 学习资料 配置式开发全新的模块 快速实现 字典管理 代码生成器详细属性设置 全智能模块开发 查询调整 多表连接 药品模块 生产厂家下拉框 学习资料 https www bilibili com video BV13g411Y7GS
  • Vue3中的pinia使用(收藏版)

    1 pinia介绍 个人网站 紫陌 笔记分享网 想寻找共同学习交流 共同成长的伙伴 请点击 前端学习交流群 pinia 是 Vue 的存储库 它允许您跨组件 页面共享状态 就是和vuex一样的实现数据共享 依据Pinia官方文档 Pinia
  • vue实现拍照人脸识别功能带人脸选中框

    前言 实现打开摄像头 并识别人脸 实现效果 实现步骤 一 安装 1 官网下载 tracking js 的代码包官网入口 2 npm下载 执行命令 cnpm install tracking save 二 demo案例代码
  • Vue项目的部署(服务器)

    Vue项目的部署 服务器 前几天帮朋友写了一个可以动态查看地点温度的前端项目 目前已经部署上线了 访问链接点这里 服务器是朋友的 倒时候打不开会很正常 说不定又使用服务器玩大数据项目去了 效果图 图一 图二 当然 温度也都是实时跟新的 而且
  • uni-app项目中使用scss语法

    最近正在学习uni app开发 我先把文档浅略翻了遍 发现组件和接口几乎都是按照微信小程序走 但是视图层上的语法又是按照vue的语法走的 所以开发过程一定要注意这点 然后我想在uni app项目中使用scss语法 但是具体怎么安装呢 历经曲
  • H5查看pdf文件(pdfh5)

    我用的是 pdfh5 来查看的H5中的pdf文件 使用 pdfh5 插件来打开 pdf文件 下面是两种使用方法 方法一 二都可以 但是我在使用方法二时有卡顿现象 可能是因为未开启懒加载 方法二中的 on 可以打印出来错误信息 使用方法 1
  • 【vue3】elementplus日期组件英文转中文

    vue3 elementplus日期组件英文转中文 1 在main js或者main ts中加入 即可解决 import ElementPlus from element plus import element plus dist inde
  • 快速入手 vue3 defindeModel 双向绑定数据,赶快了解下

    彩蛋 在vue3 3x 版本中 官方 RFC 放出了 一个新特性 defineModel 它将让我们在自定义组件上双向绑定数据更加快捷 举个 以前我们父子组件双向数据绑定要在子组件里声明对应的props emts computed 子组件
  • Vue学习之watch侦听器:案例实现翻译功能

    watch侦听器 作用 监视数据的变化 当数据发生变化时 执行一些业务逻辑或者是异步操作 执行的场景例如在线翻译 当文本区域的内容发生变化时 会发生翻译内容的同时更新 语法 简单的写法 简单数据类型 可以直接的进行监听 完整的写法 添加额外
  • Vue学习之watch侦听器:案例实现翻译功能

    watch侦听器 作用 监视数据的变化 当数据发生变化时 执行一些业务逻辑或者是异步操作 执行的场景例如在线翻译 当文本区域的内容发生变化时 会发生翻译内容的同时更新 语法 简单的写法 简单数据类型 可以直接的进行监听 完整的写法 添加额外
  • vue中使用echarts实现省市地图绘制,根据数据在地图上显示柱状图信息,增加涟漪特效动画效果

    一 实现效果 使用echarts实现省市地图绘制 根据数据在地图显示柱状图 根据数据显示数据 涟漪效果 二 实现方法 1 安装echarts插件 npm install echarts save 2 获取省市json数据 https dat
  • 基于vue2+海康威视web开发包3.2 无插件版本开发的监控系统

    文章目录 前言 一 插件准备 二 使用步骤 前言 项目最终效果为 可以预览 并且可以使用云台控制 购买的海康威视摄像头必须可以开启websocket 一 插件准备 插件下载地址 下载WEB无插件开发包V3 2 并加入到vue项目中 下载后解
  • vue项目日期处理day.js

    dayjs安装 1 npm 安装 npm install dayjs save 2 项目使用 import dayjs from dayjs ES 2015 dayjs format 使用介绍 1 秒 获取或设置秒 接受0到59的数字 如果
  • 基于springboot+vue实现位置的多分馆图书馆推荐系统演示【附项目源码+论文说明】

    基于springboot实现位置的多分馆图书馆推荐系统演示 摘要 时代的变化速度实在超出人类的所料 21世纪 计算机已经发展到各行各业 各个地区 它的载体媒介 计算机 大众称之为的电脑 是一种特高速的科学仪器 比人类的脑袋要灵光无数倍 什么

随机推荐

  • 手把手教你SQLite在Windows/VS下的安装配置及使用(超详细,不会你怪我)

    目录 一 系统环境 二 下载 三 配置系统环境 四 使用命令win r 输入cmd命令 一 系统环境 我这里用的是 Win10 64Bit VS2015 不同版本相差不大 其版本也可以参考这个安装教程 二 下载 SQLite的官网下载地址
  • 【Ubuntu】格式化U盘

    要格式化 U 盘 你可以使用以下命令来执行 请注意 执行此命令将删除 U 盘上的所有数据 请确保在执行命令之前备份重要文件 在 Linux 上 使用 mkfs 命令格式化 U 盘的步骤如下 打开终端应用程序 确定 U 盘的设备名称 运行以下
  • keyshot分辨率多少合适_keyshot电脑配置浅谈

    以下说明均以官方keyshot7 3 4以上版本为例 我们先看一下keyshot官方给出的安装所需的基本电脑配置需求 官方注释 KeyShot将利用所有可用的CPU内核 因此 更多的CPU核心 线程将产生更快的渲染时间 虽然KeyShot不
  • RabbitMQ初级教程,基础知识

    RabbitMQ学习笔记 RabbitMQ 1 初识MQ 1 1 同步和异步通讯 1 1 1 同步通讯 1 1 2 异步通讯 1 2 技术对比 2 快速入门 2 1 安装RabbitMQ 2 2 RabbitMQ消息模型 2 3 导入Dem
  • linux系统小白入门基础(含常用基本命令)

    Linux概述 简要介绍 Linux内核最初只是由芬兰人李纳斯 托瓦兹 Linus Torvalds 在赫尔辛基大学上学时出于个人爱好而编写的 Linux是一套免费使用和自由传播的类Unix操作系统 是一个基于POSIX和UNIX的多用户
  • 上例中便是调用GetSystemMenu函数的

    有如下问题请教各位 1 为什么程序在调用window api或者dll中的输出函数时用的形式是 00401375 FF1514324000 Call dword ptr 004
  • 制作esp32-cam拍照上传,微信小程序照片显示的监控小车

    前期配件准备 ESP32 CAM开发环境配置 程序下载 连接小车 控制台查看图片 微信小程序的开发 1 前期配件准备 小车套件 网上购买即可 较为方便的选择 ESP32 CAM 推荐安信可 外加TTL下载器 方便烧录程序 L298N马达驱动
  • User-agent

    1 手机User Agent 更多关于手机User Agent请 点击 UPPOOL Mozilla 5 0 Linux U Android 8 1 0 zh cn BLA AL00 Build HUAWEIBLA AL00 AppleWe
  • 盘点

    选自Github 机器之心编译 hunkim 盘点了 Github 上 18 个深度学习项目 根据收藏数自动排名 最新的一次 update 在几小时前完成 项目地址 https github com hunkim DeepLearningS
  • sh: 1: pause: not found

    linux下运行c 程序时 希望控制台不会输出后马上消失 在windows系统下 用如下语句 include
  • redis-benchmark 基准测试

    redis benchmark 基准测试 大家好 我是爱吃鱼的程序员 一个渴望在互联网行业做到C位的程序员 可柔可刚 点赞则柔 白嫖则刚 看完记得给我来个三连哦 欢迎私信 1 概述 当我们希望提高性能的使用 往往想到的是异步 缓存这个两种手
  • nginx部署的时候出现403错误

    nginx部署的时候出现403错误 原因 启动用户和nginx工作用户不一致所致 解决方法 1 先查看当前的启动用户 命令 ps aux grep nginx worker process awk print 1 这样就是启动用户和工作用户
  • Linux下多线程调试的一些方法

    一直觉得Linux下的多线程调试是很麻烦的 因为一般大一点的程序线程会很多 通过gdb的info thread命令看全都是系统调用 看不到详细的方法 至少我看到是这样的 如果用thread id跟进每个thread去bt 是件相当痛苦的事情
  • 关于spring-boot中的@SpringBootApplication中的@ComponentScan的basePackages的路劲的设置。...

    最近在看spring boot的东西 然后搭建了spring boot的简单项目 但是在spring的入口处加载的时候一直加载不到 最后看了 SpringBootApplication的源码才知道 ComponentScan 如果不设置ba
  • ChatGPT教程:如何优化我们编写的Python代码?

    背景介绍 作为一名程序员 我们经常需要编写Python代码 然而 代码质量的好坏直接关系到程序的可读性 可维护性和可扩展性 因此 我们需要使用一些工具来帮助我们提高代码质量 ChatGPT是一种强大的自然语言处理模型 可以帮助我们完成这项任
  • 全面接入:ChatGPT杀进15个商业应用,让AI替你打工

    智东西 智能产业新媒体 智东西专注报道人工智能主导的前沿技术发展 和技术应用带来的千行百业产业升级 聚焦智能变革 服务产业升级 ChatGPT狂飙160天 世界已经不是两个月前的样子 文 李水青 编辑 心缘 来源 智东西 ID zhidxc
  • findbug类型

    Summary Description Category BC Equals method should not assume anything about the type of its argument Bad practice BIT
  • 十九、SpringAOP切面的单例与多例

    Repository Scope prototype public class UserDao implements IUserDao public void save System out println 保存成功 无返回值 Config
  • 硬件基础——滤波

    一 滤波概念 滤波是将信号中特定波段频率滤除的操作 是抑制和防止干扰的一项重要措施 滤波器分类 1 当允许信号中较高频率的成分通过滤波器时 这种滤波器叫做高通滤波器 2 当允许信号中较低频率的成分通过滤波器时 这种滤波器叫做低通滤波器 3
  • vue echarts 三维折线图

    效果图