python tushare mpf 绘股票k线图

在 Python3 环境下使用 Python2 代码时,碰到了如下的语句:
#import matplotlib.finance as mpf
需要安装 pip install mpl_finance ,然后用下面的语句取代。
import mpl_finance as mpf

mpf_kline.py

# coding: utf-8
import os, sys
import datetime
import matplotlib.pyplot as plt
from matplotlib.pylab import date2num
#import matplotlib.finance as mpf
import mpl_finance as mpf
import pandas as pd
import tushare as ts
 
if len(sys.argv) ==2:
    code = sys.argv[1]
else:
    print('usage: python mpf_kline.py stockcode ')
    sys.exit(1)

if len(code) !=6:
    print('stock code length: 6')
    sys.exit(2)
    
# help(ts.get_k_data) 了解参数
k_data = ts.get_k_data(code)

# 对tushare获取到的数据转换成 candlestick_ohlc()方法可读取的格式
alist = []
for idx,row in k_data.iterrows():
    date,open,close,high,low,volume = row[0:6]
    # 将日期转换为数字
    date1 = datetime.datetime.strptime(date,'%Y-%m-%d')
    t = date2num(date1)
    data = (t,open,high,low,close)
    if date >= '2018-01-01':
        alist.append(data)

# 加这个两句 可以显示中文
plt.rcParams['font.sans-serif'] = [u'SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 创建子图
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
# 设置X轴刻度为日期时间
ax.xaxis_date()
plt.xticks(rotation=45)
plt.yticks()
plt.title("股票 {0}:K线图".format(code))
plt.xlabel("date")
plt.ylabel("price")
mpf.candlestick_ohlc(ax,alist,colorup='red',colordown='green')
plt.grid()
plt.show()

参考: 利用 python numpy +matplotlib 绘制股票k线图

发布了106 篇原创文章 · 获赞 27 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/belldeep/article/details/90551235