python的 mpl_finance模块从2020年已经提醒弃用,2021年现在用 mplfinance模块.
安装 pip install --upgrade mplfinance
mpf_kline.py
# coding: utf-8
import os, sys
import datetime
import matplotlib.pyplot as plt
import mplfinance as mpf
import pandas as pd
import tushare as ts
##绘制K线图+移动平均线
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) 了解参数
df = ts.get_k_data(code)
df = df[ df['date'] >'2021-01-01']
#print(df.tail())
if len(df) <10:
print(" len(df) <10 ")
sys.exit(2)
df.index = pd.to_datetime(df.date)
#print(mpf.available_styles())
#mpf.plot(df, style='charles', mav=(5,10,20), volume=True, title=code)
#mpf.plot(df, type='line', mav=(5,10,20), title=code)
# 绘制K线图
my_color = mpf.make_marketcolors(up='red', down='green', edge='black', wick='black', volume='cyan')
my_style = mpf.make_mpf_style(marketcolors=my_color, gridaxis='both', gridstyle='-.', y_on_right=True)
mpf.plot(df, type='candle', style=my_style, mav=(5,10,20), volume=True, title=code)
运行 python mpf_kline.py 159938
plot绘图的部分参数
:type设置图像类型'ohlc'/'candle'/'line/renko'
:mav 绘制移动平均线
:show_nontrading= True 显示非交易日(k线之间有间隔),False 不显示交易日,k线之间没有间隔
:title:设置标题
:ylabel=设置主图Y轴标题
:ylabel_lower 设置成交量一栏Y坐标标题
:figratio:设置图形纵横比
:figscale 设置图像的缩小或放大,1.5就是放大50%,最大不会超过电脑屏幕大小
:style 设置整个图表样式,可以使用前面设置的样式my_style,只能在plot函数中使用指定整个图表样式,不能在make_addplot中使用。
savefig:导出图片,填写文件名及后缀
参考: Python的mpl_finance模块从2020年已经提醒弃用,新mplfinance模块详解(一)_HHKJ 的博客-CSDN博客_mpl_finance模块