【数据挖掘重要笔记day29】绘制股票的数据OHLC图、K线图——以茅台股份为例

一、绘制股票的数据

1.数据查看

import pandas as pd
pd.read_excel('/data/茅台股份.xlsx).head()

茅台股份数据从各大财经网上均可下载
在这里插入图片描述

2.绘制OHLC线图

OHLC是什么

  • O:代表开盘汇率Open
  • H:代表最高汇率High
  • L: 代表最低汇率Low
  • C: 代表收盘汇率Close

普通的OHLC图

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

#设置尺寸
plt.rcParams['figure.figsize'] = (18,6)

#设置中文问题
sns.set_style('darkgrid',{'font.sans-serif':['SimHei','Arial']})

#读数据
df_stock = pd.read_excel('./data/茅台股份.xlsx')

#抽取开盘,最高,最低,收盘 这些数据(就是讲dataframe变得小一点)
new_df = df_stock.loc[:, ['开盘','最高','最低','收盘']]

#绘制OHLC
plt.title('茅台股份的OHLC图')
sns.lineplot(data = new_df.iloc[:150])#前150行数据

#用这四列进行图形的绘制

在这里插入图片描述

通过K线图绘制OHLC图

上面的不太美观,我们通过k线图来画
找个k线的例子
在这里插入图片描述
这个图在matplotlib和sns中不自带,我们要怎么画呢?
要引入一个其他的包
pip install mpl_finance -i https://pypi.douban.com/simple
后面是豆瓣源下载的意思
绘制k线图的时候用吗candlesticj_ohlc()函数
参数:
candlesticj_ohlc(ax,quotes,width=.2,colorup='k',colordown='r',alpha=.1)
参数解释:

  • ax:图标的轴对象
  • quetes:股票数据,不能是一般的股票数据,必须是一个生成器的类型
  • colorup是设置涨的颜色
  • colordown是设置跌的颜色
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dates
import mpl_finance as mf

#设置尺寸
plt.rcParams['figuer.figsize'] = (18,6)

#设置中文显示
plt.rcParamsp['font.family'] = ['SimHei']

#读数据
df_stock = pd.read_excel('./data/茅台股份.xlsx')

#把日期修改为行索引【重要】
df_stock.set_index('日期',inplace = True)#inplace对数据进行永久改变

#抽取开盘,最高,最低,收盘 这些数据(就是讲dataframe变得小一点)
new_df = df_stock.loc[:, ['开盘','最高','最低','收盘']]
new_df = df_stock.iloc[:100]#取前100条来绘制

#重要的时间
#时间对象因为画图,必须要求是整数类型,用dates将时间转换为整数型
#转换后要压缩时间为可迭代类型
#to_pydatetime()转变为python当中datetime库下面的数据类型(时间元组)
zip_date = zip(dates.date2num(new.df, index.to_pydatetime()),new_df.开盘,new_df.最高,new_df.最低,new_df.收盘)

#获取画布, plt.gca直接生成画布
ax = plt.gca()

#绘制K线图
plt.title('茅台股份的OHLC图', size = 20)
mf.candlestick_ohlc(ax, zip_date, width = 1, colorup = 'r', colordown = 'g')

#把x轴的时间整数替换为时间日期
ax.axis_date()

#把x轴的文字倾斜
plt.xticks(rotation=45)

在这里插入图片描述
在这里插入图片描述

发布了496 篇原创文章 · 获赞 563 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_35456045/article/details/104378049