Python绘制K线图之可视化神器pyecharts的使用


Posted in Python onMarch 02, 2021

K线图

Python绘制K线图之可视化神器pyecharts的使用

概念

股市及期货市bai场中的K线图的du画法包含四个zhi数据,即开盘dao价、最高价、最低价zhuan、收盘价,所有的shuk线都是围绕这四个数据展开,反映大势的状况和价格信息。如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图、月K线图。研究金融的小伙伴肯定比较熟悉这个,那么我们看起来比较复杂的K线图,又是这样画出来的,本文我们将一起探索K线图的魅力与神奇之处吧!

K线图

用处

K线图用处于股票分析,作为数据分析,以后的进入大数据肯定是一个趋势和热潮,K线图的专业知识,说实话肯定比较的复杂,这里就不做过多的展示了,有兴趣的小伙伴去问问百度小哥哥哟!

K线图系列模板

最简单的K线图绘制

第一个K线图绘制,来看看需要哪些参数吧,数据集都有四个必要的哟!

import pyecharts.options as opts
from pyecharts.charts import Candlestick
 
x_data = ["2017-10-24", "2017-10-25", "2017-10-26", "2017-10-27"]
y_data = [[20, 30, 10, 35], [40, 35, 30, 55], [33, 38, 33, 40], [40, 40, 32, 42]]
 
(
 Candlestick(init_opts=opts.InitOpts(width="1200px", height="600px"))
 .add_xaxis(xaxis_data=x_data)
 .add_yaxis(series_name="", y_axis=y_data)
 .set_series_opts()
 .set_global_opts(
  yaxis_opts=opts.AxisOpts(
   splitline_opts=opts.SplitLineOpts(
    is_show=True, linestyle_opts=opts.LineStyleOpts(width=1)
   )
  )
 )
 .render("简单K线图.html")
)

Python绘制K线图之可视化神器pyecharts的使用

K线图鼠标缩放

大量的数据集的时候,我们不可以全部同时展示,我们可以缩放来进行定向展示。

from pyecharts import options as opts
from pyecharts.charts import Kline
 
data = [
 [2320.26, 2320.26, 2287.3, 2362.94],
 [2300, 2291.3, 2288.26, 2308.38],
 [2295.35, 2346.5, 2295.35, 2345.92],
 [2347.22, 2358.98, 2337.35, 2363.8],
 [2360.75, 2382.48, 2347.89, 2383.76],
 [2383.43, 2385.42, 2371.23, 2391.82],
 [2377.41, 2419.02, 2369.57, 2421.15],
 [2425.92, 2428.15, 2417.58, 2440.38],
 [2411, 2433.13, 2403.3, 2437.42],
 [2432.68, 2334.48, 2427.7, 2441.73],
 [2430.69, 2418.53, 2394.22, 2433.89],
 [2416.62, 2432.4, 2414.4, 2443.03],
 [2441.91, 2421.56, 2418.43, 2444.8],
 [2420.26, 2382.91, 2373.53, 2427.07],
 [2383.49, 2397.18, 2370.61, 2397.94],
 [2378.82, 2325.95, 2309.17, 2378.82],
 [2322.94, 2314.16, 2308.76, 2330.88],
 [2320.62, 2325.82, 2315.01, 2338.78],
 [2313.74, 2293.34, 2289.89, 2340.71],
 [2297.77, 2313.22, 2292.03, 2324.63],
 [2322.32, 2365.59, 2308.92, 2366.16],
 [2364.54, 2359.51, 2330.86, 2369.65],
 [2332.08, 2273.4, 2259.25, 2333.54],
 [2274.81, 2326.31, 2270.1, 2328.14],
 [2333.61, 2347.18, 2321.6, 2351.44],
 [2340.44, 2324.29, 2304.27, 2352.02],
 [2326.42, 2318.61, 2314.59, 2333.67],
 [2314.68, 2310.59, 2296.58, 2320.96],
 [2309.16, 2286.6, 2264.83, 2333.29],
 [2282.17, 2263.97, 2253.25, 2286.33],
 [2255.77, 2270.28, 2253.31, 2276.22],
]
 
 
c = (
 Kline()
 .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
 .add_yaxis(
  "kline",
  data,
  itemstyle_opts=opts.ItemStyleOpts(
   color="#ec0000",
   color0="#00da3c",
   border_color="#8A0000",
   border_color0="#008F28",
  ),
 )
 .set_global_opts(
  xaxis_opts=opts.AxisOpts(is_scale=True),
  yaxis_opts=opts.AxisOpts(
   is_scale=True,
   splitarea_opts=opts.SplitAreaOpts(
    is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
   ),
  ),
  datazoom_opts=[opts.DataZoomOpts(type_="inside")],
  title_opts=opts.TitleOpts(title="Kline-ItemStyle"),
 )
 .render("K线图鼠标缩放.html")
)

Python绘制K线图之可视化神器pyecharts的使用

有刻度标签的K线图

我们知道一个数据节点,但是我们不能在图像里面一眼看出有哪些数据量超出了它的范围,刻度标签就可以派上用场了。

from pyecharts import options as opts
from pyecharts.charts import Kline
 
data = [
 [2320.26, 2320.26, 2287.3, 2362.94],
 [2300, 2291.3, 2288.26, 2308.38],
 [2295.35, 2346.5, 2295.35, 2345.92],
 [2347.22, 2358.98, 2337.35, 2363.8],
 [2360.75, 2382.48, 2347.89, 2383.76],
 [2383.43, 2385.42, 2371.23, 2391.82],
 [2377.41, 2419.02, 2369.57, 2421.15],
 [2425.92, 2428.15, 2417.58, 2440.38],
 [2411, 2433.13, 2403.3, 2437.42],
 [2432.68, 2334.48, 2427.7, 2441.73],
 [2430.69, 2418.53, 2394.22, 2433.89],
 [2416.62, 2432.4, 2414.4, 2443.03],
 [2441.91, 2421.56, 2418.43, 2444.8],
 [2420.26, 2382.91, 2373.53, 2427.07],
 [2383.49, 2397.18, 2370.61, 2397.94],
 [2378.82, 2325.95, 2309.17, 2378.82],
 [2322.94, 2314.16, 2308.76, 2330.88],
 [2320.62, 2325.82, 2315.01, 2338.78],
 [2313.74, 2293.34, 2289.89, 2340.71],
 [2297.77, 2313.22, 2292.03, 2324.63],
 [2322.32, 2365.59, 2308.92, 2366.16],
 [2364.54, 2359.51, 2330.86, 2369.65],
 [2332.08, 2273.4, 2259.25, 2333.54],
 [2274.81, 2326.31, 2270.1, 2328.14],
 [2333.61, 2347.18, 2321.6, 2351.44],
 [2340.44, 2324.29, 2304.27, 2352.02],
 [2326.42, 2318.61, 2314.59, 2333.67],
 [2314.68, 2310.59, 2296.58, 2320.96],
 [2309.16, 2286.6, 2264.83, 2333.29],
 [2282.17, 2263.97, 2253.25, 2286.33],
 [2255.77, 2270.28, 2253.31, 2276.22],
]
 
c = (
 Kline()
 .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
 .add_yaxis(
  "kline",
  data,
  markline_opts=opts.MarkLineOpts(
   data=[opts.MarkLineItem(type_="max", value_dim="close")]
  ),
 )
 .set_global_opts(
  xaxis_opts=opts.AxisOpts(is_scale=True),
  yaxis_opts=opts.AxisOpts(
   is_scale=True,
   splitarea_opts=opts.SplitAreaOpts(
    is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
   ),
  ),
  title_opts=opts.TitleOpts(title="标题"),
 )
 .render("刻度标签.html")
)

Python绘制K线图之可视化神器pyecharts的使用

K线图鼠标无缩放

前面的是一个有缩放功能的图例代码,但是有时候我们不想要那么修改一下参数就可以了。

from pyecharts import options as opts
from pyecharts.charts import Kline
 
data = [
 [2320.26, 2320.26, 2287.3, 2362.94],
 [2300, 2291.3, 2288.26, 2308.38],
 [2295.35, 2346.5, 2295.35, 2345.92],
 [2347.22, 2358.98, 2337.35, 2363.8],
 [2360.75, 2382.48, 2347.89, 2383.76],
 [2383.43, 2385.42, 2371.23, 2391.82],
 [2377.41, 2419.02, 2369.57, 2421.15],
 [2425.92, 2428.15, 2417.58, 2440.38],
 [2411, 2433.13, 2403.3, 2437.42],
 [2432.68, 2334.48, 2427.7, 2441.73],
 [2430.69, 2418.53, 2394.22, 2433.89],
 [2416.62, 2432.4, 2414.4, 2443.03],
 [2441.91, 2421.56, 2418.43, 2444.8],
 [2420.26, 2382.91, 2373.53, 2427.07],
 [2383.49, 2397.18, 2370.61, 2397.94],
 [2378.82, 2325.95, 2309.17, 2378.82],
 [2322.94, 2314.16, 2308.76, 2330.88],
 [2320.62, 2325.82, 2315.01, 2338.78],
 [2313.74, 2293.34, 2289.89, 2340.71],
 [2297.77, 2313.22, 2292.03, 2324.63],
 [2322.32, 2365.59, 2308.92, 2366.16],
 [2364.54, 2359.51, 2330.86, 2369.65],
 [2332.08, 2273.4, 2259.25, 2333.54],
 [2274.81, 2326.31, 2270.1, 2328.14],
 [2333.61, 2347.18, 2321.6, 2351.44],
 [2340.44, 2324.29, 2304.27, 2352.02],
 [2326.42, 2318.61, 2314.59, 2333.67],
 [2314.68, 2310.59, 2296.58, 2320.96],
 [2309.16, 2286.6, 2264.83, 2333.29],
 [2282.17, 2263.97, 2253.25, 2286.33],
 [2255.77, 2270.28, 2253.31, 2276.22],
]
 
 
c = (
 Kline()
 .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
 .add_yaxis("kline", data)
 .set_global_opts(
  yaxis_opts=opts.AxisOpts(is_scale=True),
  xaxis_opts=opts.AxisOpts(is_scale=True),
  title_opts=opts.TitleOpts(title="Kline-基本示例"),
 )
 .render("鼠标无缩放.html")
)

Python绘制K线图之可视化神器pyecharts的使用

大量数据K线图绘制(X轴鼠标可移动)

虽然有时候缩放可以容纳较多的数据量,但是还是不够智能,可以利用这个

from pyecharts import options as opts
from pyecharts.charts import Kline
 
data = [
 [2320.26, 2320.26, 2287.3, 2362.94],
 [2300, 2291.3, 2288.26, 2308.38],
 [2295.35, 2346.5, 2295.35, 2345.92],
 [2347.22, 2358.98, 2337.35, 2363.8],
 [2360.75, 2382.48, 2347.89, 2383.76],
 [2383.43, 2385.42, 2371.23, 2391.82],
 [2377.41, 2419.02, 2369.57, 2421.15],
 [2425.92, 2428.15, 2417.58, 2440.38],
 [2411, 2433.13, 2403.3, 2437.42],
 [2432.68, 2334.48, 2427.7, 2441.73],
 [2430.69, 2418.53, 2394.22, 2433.89],
 [2416.62, 2432.4, 2414.4, 2443.03],
 [2441.91, 2421.56, 2418.43, 2444.8],
 [2420.26, 2382.91, 2373.53, 2427.07],
 [2383.49, 2397.18, 2370.61, 2397.94],
 [2378.82, 2325.95, 2309.17, 2378.82],
 [2322.94, 2314.16, 2308.76, 2330.88],
 [2320.62, 2325.82, 2315.01, 2338.78],
 [2313.74, 2293.34, 2289.89, 2340.71],
 [2297.77, 2313.22, 2292.03, 2324.63],
 [2322.32, 2365.59, 2308.92, 2366.16],
 [2364.54, 2359.51, 2330.86, 2369.65],
 [2332.08, 2273.4, 2259.25, 2333.54],
 [2274.81, 2326.31, 2270.1, 2328.14],
 [2333.61, 2347.18, 2321.6, 2351.44],
 [2340.44, 2324.29, 2304.27, 2352.02],
 [2326.42, 2318.61, 2314.59, 2333.67],
 [2314.68, 2310.59, 2296.58, 2320.96],
 [2309.16, 2286.6, 2264.83, 2333.29],
 [2282.17, 2263.97, 2253.25, 2286.33],
 [2255.77, 2270.28, 2253.31, 2276.22],
]
 
c = (
 Kline()
 .add_xaxis(["2017/7/{}".format(i + 1) for i in range(31)])
 .add_yaxis("kline", data)
 .set_global_opts(
  xaxis_opts=opts.AxisOpts(is_scale=True),
  yaxis_opts=opts.AxisOpts(
   is_scale=True,
   splitarea_opts=opts.SplitAreaOpts(
    is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
   ),
  ),
  datazoom_opts=[opts.DataZoomOpts(pos_bottom="-2%")],
  title_opts=opts.TitleOpts(title="Kline-DataZoom-slider-Position"),
 )
 .render("大量数据展示.html")
)

Python绘制K线图之可视化神器pyecharts的使用

Python绘制K线图之可视化神器pyecharts的使用

K线图的绘制需要有专业的基本知识哟,不然可能有点恼火了。

到此这篇关于Python绘制K线图之可视化神器pyecharts的使用的文章就介绍到这了,更多相关Python绘制K线图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中AND、OR的一个使用小技巧
Feb 18 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
Unicode和Python的中文处理
Mar 19 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
python批量查询、汉字去重处理CSV文件
May 31 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Django用户认证系统 Web请求中的认证解析
Aug 02 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
Python脚本去除文件的只读性操作
Mar 05 Python
python的reverse函数翻转结果为None的问题
May 11 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
python中Pexpect的工作流程实例讲解
Mar 02 #Python
Opencv 图片的OCR识别的实战示例
Mar 02 #Python
python实现控制台输出颜色
Mar 02 #Python
python 如何在测试中使用 Mock
Mar 01 #Python
python装饰器代码深入讲解
Mar 01 #Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 #Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 #Python
You might like
PHP获取本周第一天和最后一天示例代码
2014/02/24 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
extjs 为某个事件设置拦截器
2010/01/15 Javascript
JavaScript flash复制库类 Zero Clipboard
2011/01/17 Javascript
JavaScript 函数replace深入了解
2013/03/14 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
JS使用post提交的两种方式
2015/12/03 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
2016/08/05 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
微信小程序实战之轮播图(3)
2017/04/17 Javascript
nodejs入门教程一:概念与用法简介
2017/04/24 NodeJs
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
vue渲染方式render和template的区别
2020/06/05 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
[00:10]DOTA2全国高校联赛 以DOTA2会友
2018/05/30 DOTA
Python遍历numpy数组的实例
2018/04/04 Python
flask入门之表单的实现
2018/07/18 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
化妆品店促销方案
2014/02/24 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
解析redis hash应用场景和常用命令
2021/08/04 Redis