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)