使用Matplotlib轻松绘制股票K线图

K线图是看懂股票走势的最基本知识,K线分为阴线和阳线,阴线和阳线都包含了最低价、开盘价、最高价和收盘价,一般都K线如下图所示:

度娘说:K线图源于日本德川幕府时代(1603~1867年),被当时日本米市的商人用来记录米市的行情与价格波动,后因其细腻独到的标画方式而被引入到股市及期货市场。通过K线图,我们能够把每日或某一周期的市况现完全记录下来,股价经过一段时间的盘档后,在图上即形成一种特殊区域或形态,不同的形态显示出不同意义。

在使用Python进行股票分析的过程中,我们可以很容易的对K线图进行绘制,下面介绍两种情形下的K线图绘制:

一、股票数据来源于Matplotlib:

# 导入需要的库

import tushare as ts

import matplotlib.pyplot as plt

import matplotlib.finance as mpf

%matplotlib inline

# 设置历史数据区间

date1 = (2014, 12, 1) # 起始日期,格式:(年,月,日)元组

date2 = (2016, 12, 1) # 结束日期,格式:(年,月,日)元组

# 从雅虎财经中获取股票代码601558的历史行情

quotes = mpf.quotes_historical_yahoo_ohlc('601558.ss', date1, date2)

# 创建一个子图

fig, ax = plt.subplots(facecolor=(0.5, 0.5, 0.5))

fig.subplots_adjust(bottom=0.2)

# 设置X轴刻度为日期时间

ax.xaxis_date()

# X轴刻度文字倾斜45度

plt.xticks(rotation=45)

plt.title("股票代码:601558两年K线图")

plt.xlabel("时间")

plt.ylabel("股价(元)")

mpf.candlestick_ohlc(ax,quotes,width=1.2,colorup='r',colordown='green')

plt.grid(True)

绘制出来的K线图如下:

二、股票数据来源于Tushare:

因为从Tushare中获取到的数据为Pandas的DataFrame结构,需要将其转换为matplotlib.finance.candlestick_ohlc()方法能够处理的数据结构。

from matplotlib.pylab import date2num

import datetime

# 对tushare获取到的数据转换成candlestick_ohlc()方法可读取的格式

data_list = []

for dates,row in hist_data.iterrows():

# 将时间转换为数字

date_time = datetime.datetime.strptime(dates,'%Y-%m-%d')

t = date2num(date_time)

open,high,low,close = row[:4]

datas = (t,open,high,low,close)

data_list.append(datas)

# 创建子图

fig, ax = plt.subplots()

fig.subplots_adjust(bottom=0.2)

# 设置X轴刻度为日期时间

ax.xaxis_date()

plt.xticks(rotation=45)

plt.yticks()

plt.title("股票代码:601558两年K线图")

plt.xlabel("时间")

plt.ylabel("股价(元)")

mpf.candlestick_ohlc(ax,data_list,width=1.5,colorup='r',colordown='green')

plt.grid()

同样也能绘制会一样的K线图:

嗯,是不是很简单?

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2016-12-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

如何写一手漂亮的模型:面向对象编程的设计原则综述

1727
来自专栏灯塔大数据

技术 | Python从零开始系列连载(二十六)

为了解答大家学习Python时遇到各种常见问题,小灯塔特地整理了一系列从零开始的入门到熟练的系列连载,每周五准时推出,欢迎大家学积极学习转载~

502
来自专栏十月梦想

字体大小单位vw和reg

vm是相对浏览器宽度,1vm浏览器1%,10vm10%,浏览器窗口大小,字体自适应,开发多用到vm作为字体单位

845
来自专栏小樱的经验随笔

洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He…【字符串+模拟】

P1200 [USACO1.1]你的飞碟在这儿Your Ride Is He… 题目描述 众所周知,在每一个彗星后都有一只UFO。这些UFO时常来收集地球上的忠...

3175
来自专栏信数据得永生

JavaScript 编程精解 中文第三版 七、项目:机器人

3216
来自专栏阮一峰的网络日志

排版六原则

几天后,就收到了秋叶老师的来信,希望与我探讨一些设计问题。他写过一本畅销书《说服力-让你的PPT会说话》,眼下正在写续集。

662
来自专栏小狼的世界

基于Mapabc API的周边查询应用

现在,越来越多的 Location Based 应用,或者Geolocation的应用出现在网络、手机等各种各样的终端上,为人们的日常生活、出行和工作都提供了不...

772
来自专栏数据小魔方

sparklines迷你图系列12——Composition(Pie)

今天分享sparklines迷你图系列13——Composition(Pie)。 大家看到名字就肯定知道是饼图了。借助sparklines迷你图工具,我们可以通...

2487
来自专栏java达人

现实生活中的SOLID原则

作者:Erik Dietrich 译者:java达人 来源:https://www.infragistics.com/community/blogs/erikd...

1688
来自专栏一个会写诗的程序员的博客

用 Kotlin 的函数式编程 替代 GOF 设计模式用 Kotlin 的函数式编程 替代 GOF 设计模式函数式编程(FP)《Kotlin极简教程》正式上架:

"函数式编程", 又称泛函编程, 是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。它的基础是 λ 演算(lambda...

924

扫码关注云+社区