用这个库,轻松绘制股票K线图
大家好,欢迎来到 Crossin的编程教室 !
有不少同学给我留言说希望讲一讲Python在股票基金分析方面的相关技术。
那说到股票基金就不得不提——K线图!这是所有技术分析的基础。
那我们今天就跟大家聊一聊:
python
来轻松绘制高颜值的K线图获取股票交易数据
巧妇难为无米之炊,做可视化也离不开数据。
本文我将以酱香型科技——贵州茅台为例,获取它的近期股票数据并绘制K线图。
如果我们要特意去动手去写爬虫,就显得有些多余了,因为Python的第三库里已经有现成的工具,比如tushare 、akshare等等金融数据接口。之前的案例中我们用过几次 tushare,这次我们用akshare
来试一试。
如果没安装记得先在命令行里安装好:
pip install akshare
运行以下语句,即可得到贵州茅台(600519)的历史数据:
import akshare as ak
df = ak.stock_zh_a_daily(symbol="sh600519", adjust="qfq")
df.tail()
这样我们就获取到了所需的数据。
注:ak.stock_zh_a_daily()函数,单次返回指定 A 股上市公司指定日期间的历史行情日频率数据。其中参数
adjust="qfq"
,返回前复权后的数据。
为了方便后面可视化,我们还需要使用索引选择固定的行列。
df = df.iloc[-20:,0:5]
这样就只筛选了开盘价、最高价、最低价、收盘价以及交易量的近期数据,下面开始用python
制作高颜值的K线图。
绘制K线图
K线图,又称蜡烛图。
通常包含四个数据,即开盘价、最高价、最低价、收盘价,所有的k线都是围绕这四个数据展开,从而反映大势的状况和价格信息。如果把每日的K线图放在一张纸上,就能得到日K线图,同样也可画出周K线图、月K线图。一般它长这样👇
目前看其他文章制作K线图时,通常都是以pyecharts为主。但今天给大家安利一个更方便的库——mplfinance
https://github.com/matplotlib/mplfinance
它原本是是Matplotlib的子模块,现被剥离成为一个独立的库。
导入库后,只需一行代码就可以生成K线图啦!
import mplfinance as mpf
mpf.plot(data=df)
额,跟我们平常看到的K线图相差有点大啊。我们再改一点点参数吧。
mpf.plot(
data=df,
type='candle',
mav=(3, 6, 9),
volume=True,
show_nontrading=True
)
用了几个参数后,颜值还不错吧。
参数说明
matplotlib
库绘制K线图的主要参数如下所示:
mpf.plot(data, type, title, ylabel, style, volume, ylabel_lower, show_nontrading, figratio, mav)
data: 数据需要有'Open','High','Low','Close'等字段。 volume: True表示添加成交量,默认False type: 图表类型,可选值包含:'ohlc', 'candle', 'line', 'renko', 'pnf' title: 标题 ylabel: 纵轴标签 ylabel_lower: 成交量的Y轴标签 show_nontrading: 是否显示非交易日,默认False figratio: 控制图表大小的元组 mav: 是否添加移动平均线 style: 各种内置样式
这里就不对每个参数做具体说明了,大家感兴趣的话可以自己更改参数查看效果。
最后给大家展示一下各种style
样式的效果👇
解决中文乱码
我们在使用Matplotlib可视化时,会遇到中文乱码问题,一般用以下语句轻松解决:
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
同理,我们也可提前设置mplfinance
的style里的字体格式,从而能够展示中文标题、标签等。
style = mpf.make_mpf_style(base_mpf_style='default', rc={'font.family': 'SimHei'})
mpf.plot(
data=df,
type='candle',
title="贵州茅台股票K线图",
ylabel="价格",
ylabel_lower="成交量",
mav=(3, 6, 9),
volume=True,
show_nontrading=True,
style=style)
这样就解决了mplfinance
可视化的中文乱码问题。
以上就是今天分享给大家的小技巧了,快来一起用python来轻松绘制高颜值的K线图吧!
本文相关代码: https://pan.baidu.com/s/12eU_zLflh0Rgg6tCGnoMqQ 提取码:kxpy
如果文章对你有帮助,欢迎转发/点赞/收藏~
作者:朱小五
_往期文章推荐_