tushare ID:468684
一、安装mplfinance库
画K线蜡烛图,使用python的mplfinance库比较方便
安装:pip install mplfinance
mplfinance默认画出来的图是黑白色的,需要自己进行配置才能画出上涨为红色,下跌为绿色的蜡烛图,这是本文探讨的重点。
二、代码实现
- 导入相关库(tushare注册链接: https://tushare.pro/register?reg=385920)
- import tushare as ts
- import numpy as np
- import pandas as pd
- import matplotlib as mpl
- import matplotlib.pyplot as plt
- import mplfinance as mpf
- 获取数据
- data = ts.get_k_data('000858', '2020-01-01', '2022-02-25')
- data.set_index('date',inplace = True)
- data.index=pd.DatetimeIndex(data.index)
- data.head()
运行结果如下:
-
设置参数
- kwargs = dict(
- type='candle',
- mav=(7, 30, 60),
- volume=True,
- title='candle_line',
- ylabel='OHLC Candles',
- ylabel_lower='Shares\nTraded Volume',
- figratio=(15, 10),
- figscale=5)
- # 设置基本参数
- # type:绘制图形的类型,有candle, renko, ohlc, line等
- # 此处选择candle,即K线图
- # mav(moving average):均线类型,此处设置7,30,60日线
- # volume:布尔类型,设置是否显示成交量,默认False
- # title:设置标题
- # y_label:设置纵轴主标题
- # y_label_lower:设置成交量图一栏的标题
- # figratio:设置图形纵横比
- # figscale:设置图形尺寸(数值越大图像质量越高)
- mc = mpf.make_marketcolors(
- up='red',
- down='green',
- edge='i',
- wick='i',
- volume='in',
- inherit=True)
- # 设置marketcolors
- # up:设置K线线柱颜色,up意为收盘价大于等于开盘价
- # down:与up相反,这样设置与国内K线颜色标准相符
- # edge:K线线柱边缘颜色(i代表继承自up和down的颜色),下同。详见官方文档)
- # wick:灯芯(上下影线)颜色
- # volume:成交量直方图的颜色
- # inherit:是否继承,选填
- s = mpf.make_mpf_style(
- gridaxis='both',
- gridstyle='-.',
- y_on_right=False,
- marketcolors=mc)
- # 设置图形风格
- # gridaxis:设置网格线位置
- # gridstyle:设置网格线线型
- # y_on_right:设置y轴位置是否在右
- mpl.rcParams['axes.prop_cycle'] = mpl.cycler(
- color=['dodgerblue', 'deeppink',
- 'navy', 'teal', 'maroon', 'darkorange',
- 'indigo'])
- # 设置均线颜色,配色表可见下图
- # 建议设置较深的颜色且与红色、绿色形成对比
- # 此处设置七条均线的颜色,也可应用默认设置
- # 设置线宽
- mpl.rcParams['lines.linewidth'] = .5
-
图形绘制
- # 图形绘制
- # show_nontrading:是否显示非交易日,默认False
- # savefig:导出图片,填写文件名及后缀
- mpf.plot(data['2022'],
- **kwargs,
- style=s,
- show_nontrading=False)
- 结果显示
参考文献
[1]tushare注册官网: https://tushare.pro/register?reg=385920
[2]知乎文章:https://mbd.baidu.com/ug_share/mbox/4a81af9963/share?tk=33f502b91841d4b3cdcc0c4e0df1dcd9&share_url=https%3A%2F%2Fwjrsbu.smartapps.cn%2Fzhihu%2Fanswer%3Fid%3D1770060763%26isShared%3D1%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp