Python 绘制K线图(基于tushare2)
colorup='red', colordown='green')# 使用candlestick_ohlc绘图。ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))# 设置横轴日期格式。mpl.rcParams['axes.unicode_minus'] = False# 解决保存图像是负号'-'显示为方块的问题。# 将第一行
·
(文件路径自己改一下)
import tushare as ts import numpy as np import seaborn as sns import matplotlib # matplotlib.use('qt4agg') import matplotlib.pyplot as plt import datetime ''' import matplotlib matplotlib.use('tkagg') import matplotlib.pyplot as plt ''' import pandas as pd import mpl_finance as mpf from matplotlib.pylab import date2num from mpl_finance import candlestick_ochl import matplotlib.dates as mdates import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 pro = ts.pro_api() start_date = '20190101' end_date = '20230207' ts_code = '000977.SZ' stock_dat = pro.daily(ts_code=ts_code, start_date=start_date, end_date=end_date) stock_dat.to_csv("D:/量化/量化(程序)/机器学习/stock_dat.csv", index=False) stock_dat = stock_dat.reindex(columns=['trade_date', 'ts_code', 'open', 'high', 'low', 'close', 'pre_close', 'change', 'pct_chg', 'vol', 'amount']) data = stock_dat # 修改第一行的日期格式 data.timestamp = pd.to_datetime(data.trade_date, format='%Y-%m-%d') # 将第一行设置为时间索引格式 data.index = data.timestamp # data.drop('trade_date', axis=1, inplace=True) data.drop('ts_code', axis=1, inplace=True) # print(data) data['Date'] = list(map(lambda x: mdates.date2num(datetime.datetime.strptime(x, '%Y%m%d')), data.trade_date.tolist())) data.drop('trade_date', axis=1, inplace=True) print(data) # 3、绘制K线图 # 提取绘图数据 ohlc = data[['Date', 'open', 'high', 'low', 'close']] f1, ax = plt.subplots(figsize=(12, 6)) # 创建图片 mpf.candlestick_ohlc(ax, ohlc.values.tolist(), width=.7 , colorup='red', colordown='green') # 使用candlestick_ohlc绘图 ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d')) # 设置横轴日期格式 plt.xticks(rotation=30) # 日期显示的旋转角度 plt.title(ts_code, fontsize = 14) # 设置图片标题 plt.xlabel('日期', fontsize = 14) # 设置横轴标题 plt.ylabel('价格(元)', fontsize = 14) # 设置纵轴标题 plt.show()
更多推荐
所有评论(0)