笔者tushare ID:476408
在经过了半年时间的学习中,对熟练的使用tushare进行股票数据分析方面具有一定的基础,能够基本掌握一些常用的算法编程,以下就以自己在校期间的分析报告为分享内容。
利用tushare获取股票信息,画出股票K线图:
完整代码:
import tushare as ts
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import mpl_finance as mpf
import matplotlib.ticker as ticker # 该库用于改变数据轴的间隔来解决日期显示不完整的问题
data=ts.get_hist_data('600111','2021-06-01','2021-11-20')
data.to_excel('600111.xlsx')
a=data.head(10)
print(a)
data=data.sort_index() # 升序排列
fig,axes=plt.subplots(2,1,sharex=True,figsize=(30,16)) # 2行1列的画布,sharex=True表示共享x轴的坐标
ax1=fig.add_subplot(2,1,1) # 第一个子图
plt.rcParams['font.sans-serif']=['SimHei'] # 解决中文显示的问题
# 切片,选择需要的数据
opens=data['open']
closes=data['close']
highs=data['high']
lows=data['low']
ohlc=list(zip(np.arange(0,123),opens,closes,highs,lows)) # 使用zip方法生成数据列表
data_index=data.index # 日期
# 方法一
#mpf.candlestick2_ochl(ax1,opens,closes,highs,lows,width=0.6,colorup='r',colordown='g')
# 方法二
mpf.candlestick_ochl(ax1,ohlc,width=0.6,colorup='r',colordown='g',alpha=1.0)
ax1.plot(data.index,data['ma5'],label='MA5') # 画5日均线
ax1.plot(data.index,data['ma10'],label='MA10') # 画10日均线
ax1.plot(data.index,data['ma20'],label='MA20') # 画20日均线
ticker_spacing=20 # 设置坐标轴间隔
ax1.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing)) # 设置x轴坐标轴的刻度
ax1.set_ylabel('价格',fontsize=30) # 设置y轴的标签
ax1.set_title('北方稀土(600111)',fontsize=40) # 设置标题
ax1.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing))
ax2=fig.add_subplot(2,1,2) # 第2张子图
ax2.bar(data.index,data['volume']) # 画成交量
ax2.xaxis.set_major_locator(ticker.MultipleLocator(ticker_spacing))
ax2.set_xlabel('日期',fontsize=20)
ax2.set_ylabel('成交量',fontsize=30)
ax2.grid(True) # 设置网格线
fig.legend() # 设置图例
plt.xticks(rotation=30) # 设置x轴刻度的旋转
plt.savefig('北方稀土')
plt.show()
结果如图所示:
以上以北方稀土为例,分析了从2021年6月到11月期间的股票走势。
以上是自己在入门级别写的代码,拙笔之作,望各位更正改进。谢谢。