vue3 echarts实现k线

news2024/10/6 6:51:01

文章目录

      • echarts实现k线
      • 核心代码
      • 完整代码

echarts实现k线

安装

npm install echarts

实现效果
没有添加成交量和均线
在这里插入图片描述
在这里插入图片描述

核心代码

引入echarts
echartsData表示echarts数据
这样写是为了方便点击时间切换k线数据

window.addEventListener(“resize”, () => {
chart.resize();
});
当屏幕大小切换之后自动切换图表大小

import * as echarts from "echarts";

const echartsData = ref([
  {
    time: "1M",
    data: [
      [20, 34, 10, 38],
      [40, 35, 30, 50],
      [31, 38, 33, 44],
      [38, 15, 5, 42],
    ],
  },
  {
    time: "5M",
    data: [
      [25, 30, 20, 35],
      [45, 36, 32, 48],
      [33, 39, 31, 45],
      [37, 14, 4, 41],
    ],
  },
  {
    time: "15M",
    data: [
      [33, 39, 31, 45],
      [37, 14, 4, 41],
      [22, 32, 18, 36],
      [42, 37, 29, 47],
    ],
  },
  {
    time: "30M",
    data: [
      [31, 38, 33, 44],
      [38, 15, 5, 42],
      [25, 30, 20, 35],
      [45, 36, 32, 48],
    ],
  },
  {
    time: "1H",
    data: [
      [33, 39, 31, 45],
      [37, 14, 4, 41],
      [22, 32, 18, 36],
      [42, 37, 29, 47],
    ],
  },
  {
    time: "4H",
    data: [
      [30, 45, 28, 50],
      [50, 38, 35, 55],
      [53, 45, 35, 48],
      [52, 42, 38, 49],
    ],
  },
]);

let chart;

onMounted(() => {
  chart = echarts.init(chart_box.value);
  option && chart.setOption(option);

  window.addEventListener("resize", () => {
    chart.resize();
  });
});

完整代码

<script setup>
import * as echarts from "echarts";
import { ref, onMounted } from "vue";

const chart_box = ref(null);

const active = ref("1M");

const echartsData = ref([
  {
    time: "1M",
    data: [
      [20, 34, 10, 38],
      [40, 35, 30, 50],
      [31, 38, 33, 44],
      [38, 15, 5, 42],
    ],
  },
  {
    time: "5M",
    data: [
      [25, 30, 20, 35],
      [45, 36, 32, 48],
      [33, 39, 31, 45],
      [37, 14, 4, 41],
    ],
  },
  {
    time: "15M",
    data: [
      [33, 39, 31, 45],
      [37, 14, 4, 41],
      [22, 32, 18, 36],
      [42, 37, 29, 47],
    ],
  },
  {
    time: "30M",
    data: [
      [31, 38, 33, 44],
      [38, 15, 5, 42],
      [25, 30, 20, 35],
      [45, 36, 32, 48],
    ],
  },
  {
    time: "1H",
    data: [
      [33, 39, 31, 45],
      [37, 14, 4, 41],
      [22, 32, 18, 36],
      [42, 37, 29, 47],
    ],
  },
  {
    time: "4H",
    data: [
      [30, 45, 28, 50],
      [50, 38, 35, 55],
      [53, 45, 35, 48],
      [52, 42, 38, 49],
    ],
  },
]);

const option = {
  tooltip: {
    trigger: "axis",
    axisPointer: {
      type: "cross",
    },
  },
  xAxis: {
    data: ["2017-10-24", "2017-10-25", "2017-10-26", "2017-10-27"],
  },
  yAxis: {},
  series: [
    {
      type: "candlestick",
      data: echartsData.value[0].data,
    },
  ],
};

let chart;

onMounted(() => {
  chart = echarts.init(chart_box.value);
  option && chart.setOption(option);

  window.addEventListener("resize", () => {
    chart.resize();
  });
});

const goTime = (item) => {
  active.value = item.time;
  option.series[0].data = item.data;
  chart.setOption(option)
};
</script>

<template>
  <div class="chart">
    <div class="time">
      <span
        v-for="(item, index) in echartsData"
        :key="index"
        @click="goTime(item)"
        :class="active === item.time ? 'active' : ''"
        >{{ item.time }}</span
      >
    </div>
    <div
      class="chart_box"
      ref="chart_box"
      style="width: 100%; height: 400px"
    ></div>
  </div>
</template>

<style lang="scss" scoped>
.chart {
  padding: 15px 0px;
}
.time {
  display: flex;
  justify-content: space-around;
}
.active {
  color: #1a73e8;
  font-weight: 600;
}
</style>

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

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

相关文章

实习日常的点点滴滴记录(threadlocal知识概括和相关应用场景)------慢慢积累,厚积薄发(要学的东西还好多,加油!))(知识和实践的结合)

在通常的业务开发中&#xff0c;ThreadLocal 有两种典型的使用场景&#xff1a; 场景1&#xff1a; ThreadLocal 用作保存每个线程独享的对象&#xff0c;为每个线程都创建一个副本&#xff0c;这样每个线程都可以修改自己所拥有的副本, 而不会影响其他线程的副本&#xff0c…

tinymce输入框怎么限制只输入空格或者回车时不能提交

项目场景: 项目相关背景: tinymce输入框只输入空格或者回车时提交的空数据毫无意义,所以需要限制一下 无意义的输入: 解决方案: 因为tinymce输入框传到后端的数据是代码形式,所以不能直接.trem,需要一步步的进行去除空格(空格分:‘ ’与‘ ’)与回车。 注意:空…

xFlight开源飞控之AT32F435计划

xFlight开源飞控之AT32F435计划 1. 源由2. 材料清单2.1 结构件2.2 动力件2.2 电子件2.3 天线2.4 附件 3. 固件准备4. 整机外观5. 问题汇总5.1 【已解决】iNav固件无法找到Baro芯片5.2 【已解决】正反电机问题5.3 【已解决】摄像头图像模糊5.4 【已解决】ESC 电机 bdshot异常5.5…

Ubuntu中使用yum命令出现错误提示:Command ‘yum‘ not found, did you mean:

Ubuntu中使用yum命令出现错误提示:Command ‘yum’ not found, did you mean: command ‘gum’ from snap gum (0.12.0) command ‘num’ from deb quickcal (2.4-1) command ‘yum4’ from deb nextgen-yum4 (4.5.2-6) command ‘uum’ from deb freewnn-jserver (1.1.1~a021…

ASEMI肖特基二极管MBR40200PT参数和作用详解

编辑-Z 肖特基二极管MBR40200PT是一种高效的电子元件&#xff0c;广泛应用于电源管理和功率控制领域。它具有低导通压降和快速恢复特性&#xff0c;能够在高频率和高温环境下稳定工作。 MBR40200PT采用了肖特基结构&#xff0c;该结构是由一个金属与一个半导体材料接触而形成的…

hdlbits系列verilog解答(向量5)-19

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 给定五个 1 位信号(a、b、c、d 和 e),计算 25 位输出向量中的所有 25 个成对一比特比较。如果要比较的两个位相等,则输出应为 1。 out[24] = ~a ^ a; // a == a, so out[24] is always 1. out[23] = ~a ^ b…

linux安装vscode vscode使用 创建项目并运行

下载 https://code.visualstudio.com/ 下载.deb文件 安装 假如文件被下载到了 /opt目录下 进入Opt目录&#xff0c;右键从当前目录打开终端。 输入下面的安装命令。 sudo apt-get install ./code_1.83.1-1696982868_amd64.deb 安装成功。 安装插件 使用c&#xff0c;必…

MyBatisPlus创建新的Mapper.xml映射文件而不使用框架自带的?

MyBatisPlus创建新的Mapper.xml映射文件而不使用框架自带的&#xff1f; 以后使用数据库框架的时候可以使用MyBatisPlus而不适用MyBatis&#xff0c;因为MyBatisPlus更为简便&#xff0c;像简单的增删改查操作&#xff0c;在MyBatisPlus中可以直接完成&#xff0c;不用写Mappe…

开发知识付费小程序的兴起:机会与挑战

近年来&#xff0c;随着移动互联网的快速发展&#xff0c;知识付费成为了一种备受欢迎的商业模式。知识付费小程序作为这一领域的新兴力量&#xff0c;正逐渐崭露头角。本文将探讨知识付费小程序的兴起、机会与挑战&#xff0c;以及这一趋势对于创业者和知识分享者的影响。 一、…

iOS开发-Lottie实现下拉刷新动画效果

iOS开发-Lottie实现下拉刷新动画效果 在开发过程中&#xff0c;有时候需要自定义下拉刷新控件&#xff0c;这里使用Lottie实现下拉刷新动画效果。 一、Lottie Lottie 是一个应用十分广泛动画库&#xff0c;适用于Android、iOS、Web、ReactNative、Windows的库&#xff0c;它…

洞察运营机会的数据分析利器

这套分析方法包括5个分析工具&#xff1a; 用“描述性统计”来快速了解数据的整体特点。用“变化分析”来寻找数据的问题和突破口。用“指标体系”来深度洞察变化背后的原因。用“相关性分析”来精确判断原因的影响程度。用“趋势预测”来科学预测未来数据的走势&#xff0c;

OpenLayers入门,OpenLayers从vue的assets资源路径加载geojson文件并解析数据叠加到地图上,以加载世界各国边界为例

专栏目录: OpenLayers入门教程汇总目录 前言 本章以加载世界各国边界的GeoJSON格式数据为例,讲解如何使用OpenLayers从vue的assets资源路径加载geojson文件并解析数据叠加到地图上。 二、依赖和使用 "ol": "^6.15.1"使用npm安装依赖npm install ol@…

我是这样保持精力充沛的

精力管理就好比是计算机的内存清理&#xff0c;你以为关掉一些程序就行了&#xff0c;结果你还是卡成翔。 我的现状 雷猴啊&#xff0c;我是一个临期程序员。打过几年工&#xff0c;被好几个同事问过我为什么精力这么旺盛。 这两年我大多数情况都是早上8点前就到公司*(原本9点上…

LVS-DR模式+keepalived+nginx+tomcat实现动静分离、负载均衡、高可用实验

实验条件&#xff1a; test2——20.0.0.20——主服务器——ipvsadm、keepalived服务 test3——20.0.0.30——备服务器——ipvsadm、keepalived服务 nginx5——20.0.0.51——后端真实服务器1&#xff08;tomcat的代理服务器&#xff09;——nginx服务 nginx6——20.0.0.61—…

buuctf_练[CISCN2019 华东南赛区]Web4

[CISCN2019 华东南赛区]Web4 文章目录 [CISCN2019 华东南赛区]Web4掌握知识解题思路代码分析正式解题 关键paylaod 掌握知识 ​ 根据url地址传参结构来判断php后端还是python后端&#xff1b;uuid.getnode()函数的了解&#xff0c;可以返回主机MAC地址十六进制&#xff1b;pyt…

Vue进阶(幺陆捌)项目部署后IE报 SCRIPT1002:语法错误 解决方案探讨

文章目录 一、前言二、组件懒加载2.1 什么是懒加载2.2 如何实现懒加载 三、延伸阅读 软件程序唤醒3.1 protocolCheck 实现3.2 自定义实现 四、拓展阅读 一、前言 Vue项目改造升级后&#xff0c;原本本地热部署后IE可正常打开的项目出现页面白屏且控制台给出SCRIPT1002:语法错误…

ssh连接远程服务器,并在终端安装anaconda

官网下载安装&#xff1a;anaconda2023.09版本&#xff08;官网地址&#xff1a;https://www.anaconda.com/download#downloads&#xff09; wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh使用阿里云镜像下载安装&#xff0c;官网下载太慢。阿…

【ModbusTCP协议】

ModbusTCP协议 一、搭建一个ModbusTCP环境二、ModbusTCP通信协议报文格式ModbusTCP的特点 一、搭建一个ModbusTCP环境 搭建一个ModbusTCP环境 1、使用ModbusSlave 2、可以用西门子PLC来做 使用西门子搭建ModbusTCP环境&#xff0c;就需要先搭建一个西门子PLC仿真环境 下载软件P…

ES6新特性:let关键字详解

文章目录 1 声明提升2 作用域3 重复声明 在JavaScript中&#xff0c;let 和 var 都是声明变量的关键字&#xff0c;但在用法和作用域方面有一些区别。 let 是ES6引入的新的声明变量的关键字&#xff0c;它与 var 相比&#xff0c;更加严格&#xff0c;语法更加规范&#xff0c…

如何租用香港写字楼,需要注意哪些事项

1. 确定您的所需 你需要多少空间 在一切开始之前&#xff0c;您需要确切地知道您的业务(即您、您现有的员工和预计的招聘、您的访客或客户以及您想要的设施如食品储藏室、接待处、服务器机房甚至健身房&#xff0c;婴儿护理室等)&#xff0c;以实用面积计算需要多少空间。空间…