python中的mplfinance库是基于matplotlib库开发的一个专门用于绘制股票数据的图表的第三方库,它提供了一系列函数和类,用于绘制各种类型的股票图表,包括K线图、成交量图和技术指标图等。
这里简单写个示例,我用的mac系统,字体采用STHeiti。如果你是
windows系统,字体可以采用SimHei 解决中文乱码。
from datetime import datetime
import matplotlib.pyplot as plt
import akshare as ak # 升级到最新版
import pandas as pd
import mplfinance as mpf
#解决中文乱码
plt.rcParams["font.sans-serif"] = ["STHeiti"]
plt.rcParams["axes.unicode_minus"] = False
def kline(symbol, start_time, end_time, stock_name):
# 利用 AKShare 获取股票的后复权数据,这里只获取前 6 列
stock_hfq_df = ak.stock_zh_a_hist(symbol, adjust="hfq").iloc[:, :6]
# 处理字段命名
stock_hfq_df.columns = [
'date',
'open',
'close',
'high',
'low',
'volume',
]
# 把 date 作为日期索引
stock_hfq_df.index = pd.to_datetime(stock_hfq_df['date'])
stock_hfq_df = stock_hfq_df[start_time:end_time]
#print(stock_hfq_df)
# 创建一个marketcolors对象,并设置颜色参数
marketcolors = mpf.make_marketcolors(up='r', down='g', volume='inherit')
# 创建一个style对象,并将marketcolors对象传递给它
style = mpf.make_mpf_style( marketcolors=marketcolors, edgecolor='k', rc={'font.family': 'STHeiti'})
# 添加图表
mpf.plot(stock_hfq_df, type='candle', style=style, title= stock_name + "K线图" ,
ylabel="价格",
ylabel_lower="成交量",
mav=(5, 10, 20), volume=True, show_nontrading=False)
if __name__ == '__main__':
kline("603348", "2024-01-01", "2024-04-26", "文灿股份");
运行结果
其他方法这里就不一一演示了
绘制布林带指标图
mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot(
stock_hfq_df[[‘Bollinger_High’, ‘Bollinger_Low’]]))
绘制MACD指标图
mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot
(stock_hfq_df[[‘MACD’, ‘MACD_Signal’, ‘MACD_Histogram’]]))
绘制KDJ指标图
mpf.plot(stock_hfq_df, type=‘candle’, addplot=mpf.make_addplot(
stock_hfq_df[[‘K’, ‘D’, ‘J’]]))
如果觉得我的分享对你有所帮助,不吝啬点个赞给个关注。