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"] = Falsedef 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’]]))
如果觉得我的分享对你有所帮助,不吝啬点个赞给个关注。
原文链接:【python技术】使用akshare、pandas、mplfinance绘制红绿色K线图简单示例