目录

  • 1 引入Echarts
    • 1.1 安装
    • 1.2 引入
    • 1.3 基本使用
  • 2 基础K线图
    • 2.1 基础k线图
    • 2.2 基础日k图
  • 3 总结

1 引入Echarts

1.1 安装

使用如下命令通过 npm 安装 ECharts

npm install echarts --save

注:本文安装Echarts版本为:“echarts”: “5.2.1”

1.2 引入

安装完成以后,可以将echarts全部引入,这样一来,我们可以在该页面使用echarts所有组件;引入代码如下:

import * as echarts from "echarts";

1.3 基本使用

vue+Echarts基本使用请见:在Vue项目中引入 ECharts

2 基础K线图

2.1 基础k线图

Ecahrts自带K线图,将seriestype设置为candlestick即可;

基础k线图横坐标为交易日,纵坐标为每股价格,其次就是K线图每天的情况,包含当前价格,前日收盘价格,开盘价格,当日最高价,当日最低价,我们只需要将对应的数据传入到对应的参数当中,即可得到我们想要的k线图。

如图为基本k线图示例:

上图代码如下:

<template><div class="echart" id="mychart" style="width:100%; height: 400px;"></div>
</template><script>
import * as echarts from "echarts";export default {data() {return {};},mounted() {this.initEcharts();},methods: {initEcharts() {const option = {title: {text: "K线入门示例"},tooltip: {},legend: {},xAxis: {data: ["2017-10-24", "2017-10-25", "2017-10-26", "2017-10-27"]},yAxis: {},series: [{type: "candlestick",data: [[20, 34, 10, 38], //今开、当前价格、最低价格、最高价[40, 35, 30, 50],[31, 38, 33, 44],[38, 15, 5, 42]]}]};const myChart = echarts.init(document.getElementById("mychart"));myChart.setOption(option);//随着屏幕大小调节图表window.addEventListener("resize", () => {myChart.resize();});}}
};
</script>

2.2 基础日k图

金融证券机构的K线图数据较为全面,K线图包含日K图、周K图、日K图,年K图,国内红色代表涨,绿色代表跌,最近两个月股市一片绿,原因在于全球经济下行以及国内被某个大国收割。

今天我们主要介绍日K图,从中能推演出周K、月K图,只是传入数据不同而已。

日k图除了红绿柱状图,还包含均线,同行均线数据可由日K数据直接计算获得,不过作为前端工程师,建议均线数据直接从后台获取,前端计算回有些许计算误差。

此外,日K图还有其他属性可以进行调整,如的护镖防止位置出现对应数据、K线柱状图颜色,宽度等,掌握基本的日K图配置以后,其他的K线图万变不离其中。

我们直接上图以及代码示例:

上图代码如下:

<template><div class="echart" id="mychart" style="width:100%; height: 400px;"></div>
</template><script>
import * as echarts from "echarts";
import SZlineData from "./data/klineDate.ts";
// console.log(SZlineData);export default {data() {return {upcolor: "#FF0000", //增长颜色upBorderColor: "#8A0000",downColor: "#008000", // 下跌颜色downBorderColor: "#008F28",klineData: [] //k线图数据};},mounted() {this.initData();this.initEcharts();},methods: {initData() {this.klineData = this.splitData(SZlineData);},initEcharts() {const option = {title: {text: "上证指数",left: 0},tooltip: {trigger: "axis",axisPointer: {type: "cross"}},legend: {data: ["日K", "MA5", "MA10", "MA20", "MA30"]},grid: {left: "10%",right: "10%",bottom: "15%"},xAxis: {type: "category",data: this.klineData.categoryData,boundaryGap: false,axisLine: { onZero: false },splitLine: { show: false },min: "dataMin",max: "dataMax"},yAxis: {scale: true,splitArea: {show: true}},dataZoom: [{type: "inside",start: 50,end: 100},{show: true,type: "slider",top: "90%",start: 50,end: 100}],series: [{name: "日K",type: "candlestick",data: this.klineData.values,itemStyle: {color: this.upColor,color0: this.downColor,borderColor: this.upBorderColor,borderColor0: this.downBorderColor},markPoint: {label: {formatter: function(param) {return param != null ? Math.round(param.value) + "" : "";}},data: [{name: "Mark",coord: ["2013/5/31", 2300],value: 2300,itemStyle: {color: "rgb(41,60,85)"}},{name: "highest value",type: "max",valueDim: "highest"},{name: "lowest value",type: "min",valueDim: "lowest"},{name: "average value on close",type: "average",valueDim: "close"}],tooltip: {formatter: function(param) {return param.name + "<br>" + (param.data.coord || "");}}},markLine: {symbol: ["none", "none"],data: [[{name: "from lowest to highest",type: "min",valueDim: "lowest",symbol: "circle",symbolSize: 10,label: {show: false},emphasis: {label: {show: false}}},{type: "max",valueDim: "highest",symbol: "circle",symbolSize: 10,label: {show: false},emphasis: {label: {show: false}}}],{name: "min line on close",type: "min",valueDim: "close"},{name: "max line on close",type: "max",valueDim: "close"}]}},{name: "MA5",type: "line",data: this.calculateMA(5),smooth: true,showSymbol: false,lineStyle: {width: 1,opacity: 0.8}},{name: "MA10",type: "line",data: this.calculateMA(10),smooth: true,showSymbol: false,lineStyle: {width: 1,opacity: 0.8}},{name: "MA20",type: "line",data: this.calculateMA(20),smooth: true,showSymbol: false,lineStyle: {width: 1,opacity: 0.8}},{name: "MA30",type: "line",data: this.calculateMA(30),smooth: true,showSymbol: false,lineStyle: {width: 1,opacity: 0.8}}]};const myChart = echarts.init(document.getElementById("mychart"));myChart.setOption(option);//随着屏幕大小调节图表window.addEventListener("resize", () => {myChart.resize();});},// 数据计算以及拆分splitData(rawData) {const categoryData = [];const values = [];for (let i = 0; i < rawData.length; i++) {categoryData.push(rawData[i].splice(0, 1)[0]);values.push(rawData[i]);}return {categoryData: categoryData,values: values};},// 均值计算calculateMA(dayCount) {const result = [];for (let i = 0, len = this.klineData.values.length; i < len; i++) {if (i < dayCount) {result.push("-");continue;}let sum = 0;for (let j = 0; j < dayCount; j++) {sum += +this.klineData.values[i - j][1];}// 保留两位小数result.push((sum / dayCount).toFixed(2));}return result;}}
};
</script>

注:部分Echarts相关属性已在前面章节介绍过,这里不做重复介绍。以上代码可实现日K线基本图形。

3 总结

K线图主要是要理解多种图型的各个数据所代表的含义,主要由折线图以及日k图两种组成,这里我们介绍了基本日K图,下期我们介绍更为全面的日K图和分时图相互转换,来实现基本应用。

vue+Echarts绘制K线图详解(一)----基本日K图绘制相关推荐

  1. TradingView - K线 使用详解

    TradingView - K线 文章目录 TradingView - K线 1 前言 2 如何使用 2.1 项目引入 Tradingview 静态资源包 [强制] 静态资源包 `charting_l ...

  2. python画折线图详解-python如何画折线图

    python画折线图利用的是matplotlib.pyplot.plot的工具来绘制折线图,这里先给出一个段代码和结果图:# -*- coding: UTF-8 -*- import numpy as ...

  3. python雷达图详解_python的matplotlib---雷达图

    1.先了解一下什么是极坐标 极点:以圆的中心作为极点O, 极轴:以0°的方向引一条射线极轴Ox, 极径:选定一个长度单位r 极角:以Ox正方向开始计算角度θ(通常取逆时针方向) 极坐标:以极点O作为圆 ...

  4. UML图详解(五)组件图

    一.概念 组件图(Component Diagram)又称为构件图,他描述的是在软件系统中遵从并实现一组接口的物理的.可替换的软件模块. 构件图 = 构件(Component) + 接口(Interf ...

  5. python画折线图详解-利用python画折线图

    # encoding=utf-8 import matplotlib.pyplot as plt from pylab import * #支持中文 mpl.rcParams["font.s ...

  6. K线图的看法实图详解

    K线图的看法实图详解 K线图最早是日本德川幕府时代大阪的米商用来记录当时一天.一周或一月中米价涨跌行情的图示法,后被引入股市. K线图有直观.立体感强.携带信息量大的特点,蕴涵着丰富的东方哲学思想,能 ...

  7. 怎样看K线图(实图详解)

    K线图由开盘价.收盘价.最高价和最低价组成.       上面两种图叫作实体红K线和实体黑K线,实体红K线意味买力强劲,市场有强烈的做多欲望,此时可持股待涨.实体黑K线则代表市场完全进入恐惧状态,如果 ...

  8. python画50个图-Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢?

    Python绘制六种可视化图表详解,三维图最炫酷!你觉得呢? 可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的.对于初学者来说,很容易被这官网上 ...

  9. R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置、置信区间、坐标轴(刻度、标签、范围)、无效线去除、水平线、辅助线、box形状、色彩等

    R语言基于forestplot包可视化森林图实战详解:美化的森林图:自定义字体设置.置信区间.坐标轴(刻度.标签.范围).无效线去除.水平线.辅助线.box形状.色彩等 目录

  10. 看图详解各种跳线的定义

    #1  小家伙大用场!看图详解各种跳线的定义 小家伙大用场!看图详解各种跳线的定义跳线(英文jumper)是控制线路板上电流流动的小开关.它的作用是调整设备上不同电信号的通断关系,并以此调节设备的工作 ...

最新文章

  1. 艾伟也谈项目管理,如何做一个合格的项目经理
  2. (转)Response.Redirect 打开新窗口的两种方法
  3. 自学python什么时候能够兼职-总结下我是如何利用python在闲余时间月赚5千外快...
  4. IEEE Spectrum 2014 年度编程语言排名
  5. 园林系统优秀党员推荐材料_昆山合纵生态科技有限公司——园林废弃物循环利用“昆山合纵模式”的探索和实践者...
  6. html中alert的用法_【渗透实战】通过HTML命名空间混淆绕过DOMPurify实现XSS
  7. viwer连接不到服务器 vnc_vnc viewer连不上怎么办 vnc viewer连不上的解决方法
  8. CDOJ 482 Charitable Exchange bfs
  9. sql script: Calculating Days
  10. 算法导论 CLRS 23.3 解答 (未完成)
  11. python 多线程读写文件_python多线程写入文件问题
  12. Q136:PBRT-V3,双向路径追踪(Bidirectional Path Tracing)(16.3章节)
  13. MAC查看CPU信息
  14. php网站源码 一品资源网,一品资源网自用官网模板源码下载站(带手机模板)...
  15. MPU6050姿态解算——Mahony互补滤波
  16. java编程 科学计算器_可编程科学计算器下载-可编程科学计算器(Scientific Calculator Plus) 安卓版v1.7.2.60-pc6手机下载...
  17. javascript实现有序map
  18. java邮件增加签名_Java对文件添加数字签名
  19. mysql数据库常用存储引擎的区别
  20. matlab验证采样定理

热门文章

  1. 我们如何才能打造个人品牌?
  2. Office2003与Office2007/2010共存方法
  3. 【算法设计与分析基础】21、动态规划-背包问题
  4. unity 简单实现三阶魔方游戏
  5. 关于HMC的IP地址
  6. 一木.溪桥---Python之周边
  7. JZOJ 1371 假期#RMQ#
  8. Linux的远程桌面管理,密钥登陆,SSH协议,四层防御系统实验详解
  9. 新疆塔城全民冰雪运动推动冬季旅游热
  10. 专转本-计算机习题练习