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调用java的Webservice示例
Mar 10 Python
Python易忽视知识点小结
May 25 Python
Python实现合并字典的方法
Jul 07 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
python  logging日志打印过程解析
Oct 22 Python
Python 切分数组实例解析
Nov 07 Python
使用python创建生成动态链接库dll的方法
May 09 Python
python进行参数传递的方法
May 12 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
May 15 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
javascript中attachEvent用法实例分析
2015/05/14 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
Javascript设计模式之观察者模式(推荐)
2016/03/29 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
Webpack打包css后z-index被重新计算的解决方法
2017/06/18 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
[01:18:45]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第三场2月1日
2021/03/11 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
python中for in的用法详解
2020/04/17 Python
详解Python中第三方库Faker
2020/09/25 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
Pure Collection美国官网:来自英国羊绒专家的奢华羊绒
2017/11/19 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
abstract是什么意思
2012/02/12 面试题
活动总结报告范文
2014/05/04 职场文书
机关作风建设自查报告及整改措施
2014/10/21 职场文书
异地恋情人节寄语
2015/02/28 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers