目录

1 股票K线图知识了解

2 用Python绘制股票K线图

2.1 安装绘制K线图的mpl_finance库

2.2 引入相关库

2.3 用Tushare库获取股票基本数据

2.4 日期格式调整及表格转换

2.5 绘制K线图

2.6 添加均线图

2.7 添加每日成交量柱形图


1 股票K线图知识了解

下图所示为“贵州茅台”股票的日线级别的K线图:

K线图中的柱形通常称为“K线”,因为形似蜡烛,所以也称为蜡烛图。

K线是根据股票的4个价格绘制的:

开盘价(当天上午9:30开始交易时的价格)、

收盘价(当天下午3:00结束交易时的价格)、

最高价(当天股价波动中的最高价)、

最低价(当天股价波动中的最低价)。

这4个价格分别简称为“高”“开”“低”“收”

K线分为两种:

如果当天的收盘价高于开盘价,即当天的价格上涨,称为阳线,通常绘制成红色;

如果当天的收盘价低于开盘价,即当天的价格下跌,则称为阴线,通常绘制成绿色;

        补充说一句,在美国的股票市场上,反而是用红色代表跌,用绿色代表涨。

K线图中的折线称为“均线”

均线分为5日均线(MA5)、10日均线(MA10)、20日均线(MA20)等,其绘制原理是对一定时期内股票的收盘价求平均值。

例如,要绘制5日均线,就要先计算最近连续5个交易日收盘价的平均值,具体的计算公式如下,其中Close1为当天的收盘价,Close2为前一天的收盘价,依次类推。

根据上述公式,每个交易日都能算出一个5日均价,再把多个交易日的5日均价连成一条平滑的曲线,就是5日均线。10日均线和20日均线也是用类似的原理绘制的。

2 用Python绘制股票K线图

2.1 安装绘制K线图的mpl_finance库

命令行窗口或者Jupyter Notebook:

pip install https://github.com/matplotlib/mpl_finance/archive/master.zip

2.2 引入相关库

import tushare as ts
import matplotlib.pyplot as plt
import mpl_finance as mpf
import seaborn as sns

2.3 用Tushare库获取股票基本数据

通过Tushare库获取股票代码为“000002”的股票“万科A”在2019-06-01至2019-09-30的股价数据,代码如下。

df = ts.get_k_data('000002','2019-06-01','2019-09-30')

获取到的数据部分截图如下。

2.4 日期格式调整及表格转换

因为绘制K线图的candlestick_ochl()函数只能读取数组格式的数据,并且其中的日期数据要为特定的数字格式,所以需要将前面获取的股票基本数据调整一下,代码如下。

# 导入调整日期格式涉及的两个库
from matplotlib.pylab import date2num
import datetime# 将Tushare库中获取到的日期数据转换成candlestick_ochl()函数可读取的格式
def date_to_num(dates):num_time = []for date in dates:date_time = datetime.datetime.strptime(date,'%Y-%m-%d')num_date = date2num(date_time)num_time.append(num_date)return num_time# 将DataFrame转换为二维数组,并利用date_to_num()函数转换日期格式
df_arr = df.values  #将DataFrame格式的数据转换为二维数组
# df_arr
df_arr[:,0] = date_to_num(df_arr[:,0])  #将二维数组中的日期转换成数字格式

查看调整后的部分数据:

可以看到DataFrame格式的二维表格变为二维数组,且date列的内容由文本格式的日期变为数字格式的日期。

2.5 绘制K线图

fig,ax = plt.subplots(figsize=(15,6))
mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='r',colordown='g',alpha=1.0)
plt.grid() #显示网格
ax.xaxis_date()  #设置x轴的刻度格式为常规日期格式

2.6 添加均线图

以添加5日均线和10日均线为例,首先通过如下代码构造5日均线和10日均线的数据。

df['MA5'] = df['close'].rolling(5).mean()
df['MA10'] = df['close'].rolling(10).mean()

通过rolling()函数和mean()函数可以直接算出均线数据,若要计算20日或30日均线的数据,只需将rolling()函数中的参数换成20或30。

查看此时数据:

可以看到,代表5日均线数据的MA5列前4行为空值,这是因为5日均线数据是取连续5个交易日的收盘价来计算平均值,而前4行数据不足,也就无法计算,所以为空值;同理,MA10列的前9行也为空值,到第10行才开始有数据。

获取到5日均线和10日均线的数据后,即可将其绘制成图表,代码如下。

plt.rcParams['font.sans-serif'] = ['SimHei']  #设置正常显示中文
fig,ax = plt.subplots(figsize=(15,6))
mpf.candlestick_ochl(ax,df_arr,width=0.6,colorup='r',colordown='g',alpha=1.0)
plt.plot(df_arr[:,0],df['MA5'])
plt.plot(df_arr[:,0],df['MA10'])plt.grid()
ax.xaxis_date()plt.title('万科A')
plt.xlabel('日期')
plt.ylabel('价格')

2.7 添加每日成交量柱形图

在商业实战中,与股票K线图、均线图一同出现的往往还有每日成交量柱形图。下面利用绘制多图的知识点,在一张画布中绘制两张子图,第1张子图包含K线图和均线图,第2张子图为每日成交量柱形图,代码如下。

fig,axes = plt.subplots(2,1,sharex=True,figsize=(15,8))
ax1,ax2 = axes.flatten()# 绘制K线图和均线图
mpf.candlestick_ochl(ax1,df_arr,width=0.6,colorup='r',colordown='g',alpha=1.0)
ax1.plot(df_arr[:,0],df['MA5'])
ax1.plot(df_arr[:,0],df['MA10'])ax1.grid()
ax1.xaxis_date()
ax1.set_title('万科A',fontsize=16)
ax1.set_ylabel('价格',fontsize=16)# 绘制每日成交量图
ax2.bar(df_arr[:,0],df_arr[:,5])
ax2.set_xlabel('日期',fontsize=16)
ax2.set_ylabel('成交量',fontsize=16)
ax1.grid()
ax1.xaxis_date()

Python绘制股票K线图相关推荐

  1. 太酷炫了,用python绘制股票K线图!

    大家好,我是小五 发现大家还是最喜欢股票基金话题呀~ 那说到股票基金就不得不提--K线图! 那小五今天就带大家???? 用python来轻松绘制高颜值的K线图???? 获取股票交易数据 巧妇难为无米之 ...

  2. 【Python】绘制股票K线图(烛状图)并增加成交量和移动平均线(详细简单)

    Python绘制股票K线图(烛状图)并增加成交量和移动平均线: 准备工作: 1.这里需要使用到pandas和mplfinance工具库(自行安装好). 2.下载好股票数据,需要包括:时间.开盘价.最高 ...

  3. 利用python—matplotlib绘制股票K线图

    利用python-matplotlib绘制股票K线图 成品展示: 用Python绘制股票K线图并不复杂,不过得做好一些准备工作例如相关库的安装,库的引入.日期格式的调整and表格转换 文章目录 利用p ...

  4. 利用 python numpy +matplotlib 绘制股票k线图

    一.python numpy + matplotlib 画股票k线图 # -- coding: utf-8 -- import requests import numpy as np from mat ...

  5. html5绘制股票图形,股票数据分析(五):绘制股票k线图(js+canvas + Python + json)

    本文介绍:利用 js+canvas 绘制股票k线图 HTML5 标签用于绘制图像(通过脚本,通常是 JavaScript). 不过, 元素本身并没有绘制能力(它仅仅是图形的容器) - 您必须使用脚本来 ...

  6. python 绘制k线图_利用python numpy+matplotlib绘制股票k线图的方法

    一.python numpy + matplotlib 画股票k线图 # -- coding: utf-8 -- import requests import numpy as np from mat ...

  7. python画k线图_Python+pyqtgraph:跟我学如何绘制股票K线图

    引言 pyqtgraph是Python平台上一种功能强大的2D/3D绘图库,相对于matplotlib库,由于其在内部实现方式上,使用了高速计算的numpy信号处理库以及Qt的GraphicsView ...

  8. Tkinter绘制股票K线图

    在前面的文章中,我们一起学习了如何通过 Python 抓取东方财富网的实时股票数据以及如何制作成 Tkinter GUI 程序,链接如下 用 Python 爬取股票实时数据 Tkinter制作股票数据 ...

  9. plotly基于dataframe数据绘制股票K线图并过滤非交易时间

    plotly基于dataframe数据绘制股票K线图并过滤非交易时间 #ohlc过滤非交易时间: import plotly as py # 导入plotly库并命名为py import plotly ...

最新文章

  1. 漫谈php框架之中间件
  2. 继国美处罚“摸鱼”员工后,网易出品之摸鱼计算器...
  3. 分割 bisenetv2笔记
  4. 如何避免无意义的区块链项目
  5. CTF入门--http请求头
  6. 操作系统:Linux虚拟内存知识介绍
  7. java 用户控件_C#自定义控件VS用户控件
  8. web前端好学吗?如何能提高CSS编写技巧 提高Web前端开发效率
  9. 多叉树/图结构维护问题转线性结构——dfs序
  10. 给出两个字符串(可能包含空格),找出其中最长的公共连续子串,输出其长度
  11. 基于Android的英文电子词典
  12. 【C++】实现一个日期计算器
  13. 在实体引用中,实体名称必须紧跟在 ‘’后面
  14. 微信小程序留言功能实现
  15. 数字签名标准算法——DSA
  16. 2021-2027全球与中国含氮饮料市场现状及未来发展趋势
  17. js判断当前手机的操作系统
  18. 用C++品尝Vista美味:界面的毛玻璃效果——涨姿势
  19. 设备虚拟化技术之堆叠
  20. Nature子刊:根系分泌物化学性质和微生物底物偏好性驱动根际微生物群落组装模式...

热门文章

  1. 【input 身份证号】星号 代替,input 切割成 多个 小格格(类似)
  2. webp文件怎么打开?webp压缩工具推荐
  3. html5直播服务端搭建,直播推流服务器端搭建
  4. “background-image:url(data:image”data类型的Url格式简介
  5. 读取图片文件到剪贴板时的html格式
  6. 澳洲移民监 盘点一下各国的移民监要求
  7. 面试技巧: 轻松过关10种方法
  8. Unity 内置着色器下载方法
  9. 学习感悟-如何养成良好的编程习惯
  10. 神经网络——最易懂最清晰的一篇文章