python plot函数用法 python中plot的用法

Python笔记:用mplfinance的plot绘制K线图

mplfinance是专用于金融数据的可视化分析模块,是基于matplotlib的实用模块程序。

一、从mpl-finance转到mplfinance

1、安装mpl-finance模块

pip install mpl-finance


2、导入mpl_finance模块出现警告

import mpl_finance as mpf


  • 弹出警告信息:mpl_finance被废弃了,请使用mplfinance(没有短横线,没有下划线)。

3、安装mplfinance模块

pip install mplfinance


4、安装pandas.datareader模块

pip install pandas.datareader


二、获取在线数据,绘制K线图

1、利datareader读取在线股市数据

import pandas_datareader as pdr

dir(pdr)

结果:

['DataReader',

'Options',

'__all__',

'__builtins__',

'__cached__',

'__doc__',

'__file__',

'__loader__',

'__name__',

'__package__',

'__path__',

'__spec__',

'__version__',

'_utils',

'_version',

'av',

'bankofcanada',

'base',

'compat',

'data',

'econdb',

'enigma',

'eurostat',

'exceptions',

'famafrench',

'fred',

'get_components_yahoo',

'get_dailysummary_iex',

'get_data_alphavantage',

'get_data_enigma',

'get_data_famafrench',

'get_data_fred',

'get_data_moex',

'get_data_quandl',

'get_data_stooq',

'get_data_tiingo',

'get_data_yahoo',

'get_data_yahoo_actions',

'get_iex_book',

'get_iex_data_tiingo',

'get_iex_symbols',

'get_last_iex',

'get_markets_iex',

'get_nasdaq_symbols',

'get_quote_yahoo',

'get_recent_iex',

'get_records_iex',

'get_summary_iex',

'get_tops_iex',

'iex',

'io',

'moex',

'nasdaq_trader',

'naver',

'oecd',

'quandl',

'stooq',

'tiingo',

'yahoo']

import pandas_datareader as pdr

data = pdr.get_data_yahoo('INTC', '/9/1', '//1')


  • 如果你要访问IBM公司的股票数据,将第一个参数改成‘IBM’即可

data = pdr.get_data_yahoo(‘IBM’, ‘/9/1’, ‘//1’)

2、利用mplfinace的plot()绘制K线图


3、修改plot绘图类型

  • 通过参数type修改绘图类型,默认是ohlc,可改成type=‘candle’ 或者 type=‘line’



4、增加绘制均线

  • 关键字参数 mav=(2, 5, ),多条均线使用元组,只绘制一条均线,可以mav=



5、绘制成交量

  • 关键字参数volume=True


6、自动剔除非交易日空白

  • 关键字参数show_nontrading,默认是False,设置为True,就可以看到停盘的时间段


  • 由于上述读取的数据没有停盘时间段,因此绘图没有什么不同。

7、绘制IBM公司股票年9月K线图

三、读取本地数据,绘制K线图

1、查看本地数据


  • 说明,plot()函数的参数data必须是pandas.DataFrame数据类型,对所包含的列也有要求,必须包含’Open’, ‘High’, ‘Low’ 和 ‘Close’ 数据(注意首字母必须大写),而且行索引必须是pandas.DatetimeIndex,行索引的名称必须是’Date‘,此外还有一列是’Volume’是可选项。

2、读取本地数据

import pandas as pd

import mplfinance as mpf

data = pd.read_csv('d:/python_work//test2020.csv', index_col='Date')


3、将索引类型更改为DatetimeIndex

data.index = pd.DatetimeIndex(data.index)

4、绘制K线图,剔除非交易时段

mpf.plot(data, type=‘candle’, mav=(2, 5, ), volume=True)


5、绘制K线图,显示非交易时段

mpf.plot(data, type=‘candle’, mav=(2, 5, ), volume=True, show_nontrading=True)


四、设置plot()函数的addplot参数

1、读取IBM公司年月1日到月日数据

import mplfinance as mpf

import pandas_datareader as pdr

data = pdr.get_data_yahoo('IBM', '//1', '//')

data.head(5)


  • 将数据导出到ibm_data.csv
  • 读取本地的数据文件 - ibm_data.csv

data = pd.read_csv('d:/python_work//ibm_data.csv', index_col='Date')

data.index = pd.DatetimeIndex(data.index)


  • 现在,我们要在K线图上添加刚才新增列 - MidValue

2、利用make_addplot()函数定义addplot参数值

add_plot = mpf.make_addplot(data['MidValue'])


3、绘制K线图,增加MidValue列对应的曲线

mpf.plot(data, type='candle', addplot=add_plot)


4、绘制K线图,添加High、MidValue和Low对应的曲线

add_plot = mpf.make_addplot(data[['High', 'MidValue', 'Low']])

mpf.plot(data, type='candle', addplot=add_plot)


5、在结果图上添加标记

a_list = data.High.tolist()

b_list = data.Low.tolist()

add_plot = [

mpf.make_addplot(a_list, scatter=True, markersize=, marker='v', color='y'),

mpf.make_addplot(b_list, scatter=True, markersize=, marker='^', color='r'),

mpf.make_addplot(data['MidValue'])]

mpf.plot(data, type='candle', addplot=add_plot)


最后,小编想说:我是一名python开发工程师,
整理了一套最新的python系统学习教程,
想要这些资料的可以关注私信小编“”即可(免费分享哦)希望能对你有所帮助

原文链接:,转发请注明来源!