一、绘制股票的数据
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)