厉害了,股票K线图还能这么画!

大家好,我是小五🐶

发现大家还是最喜欢股票基金话题呀~

那说到股票基金就不得不提——K线图

那小五今天就带大家👉

python来轻松绘制高颜值的K线图🚀


获取股票交易数据



巧妇难为无米之炊,做可视化也离不开数据。

本文我将以酱香型科技——贵州茅台为例,获取它的近期股票数据并绘制K线图。

如果我们要特意去动手去写爬虫,就显得有些多余了,毕竟爬完之后体验也不佳。

这里我们可以直接使用tushare 、akshare等等金融数据接口,个人非常安利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)

额,相差较大,我们再改一点点参数吧。

mpf.plot(
    data=df,
    type='candle',
    mav=(369), 
    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=(369), 
    volume=True,
    show_nontrading=True,
    style=style)

这样就解决了mplfinance可视化的中文乱码问题。

以上就是小五分享给大家的小技巧了,快来一起用python来轻松绘制高颜值的K线图吧!🚀

如果喜欢我的文章,求点赞支持一波。

如果对文中代码感兴趣,可以点击下方卡片,在「快学Python」👇后台回复“K线图”一键获取


基于股票大数据分析的Python入门实战本书针对Python零基础的用户,主要讲解大量的股票指标技术分析的范例,由浅入深地介绍了使用Python语言编程开发的应用“图谱”。点击下图可看详情/购买!👇

感谢清华大学出版社的赞助与支持!点击阅读原文 300币 免费兑换!

本文分享自微信公众号 - 凹凸数据(alltodata)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章