Skip to content

Commit 0fd23af

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 0da0be4 + ae0aa1a commit 0fd23af

File tree

2 files changed

+18
-13
lines changed

2 files changed

+18
-13
lines changed

src/mplfinance/_arg_validators.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import pandas as pd
33
import numpy as np
44

5-
def _check_and_prepare_data(data):
5+
def _check_and_prepare_data(data, config):
66
'''
77
Check and Prepare the data input:
88
For now, data must be a Pandas DataFrame with a DatetimeIndex
@@ -25,16 +25,17 @@ def _check_and_prepare_data(data):
2525
if not isinstance(data.index,pd.core.indexes.datetimes.DatetimeIndex):
2626
raise TypeError('Expect data.index as DatetimeIndex')
2727

28-
cols = ['Open','High','Low','Close']
28+
o, h, l, c, v = config["columns"]
29+
cols = [o, h, l, c]
2930

3031
dates = mdates.date2num(data.index.to_pydatetime())
31-
opens = data['Open'].values
32-
highs = data['High'].values
33-
lows = data['Low'].values
34-
closes = data['Close'].values
35-
if 'Volume' in data.columns:
36-
volumes = data['Volume'].values
37-
cols.append('Volume')
32+
opens = data[o].values
33+
highs = data[h].values
34+
lows = data[l].values
35+
closes = data[c].values
36+
if v in data.columns:
37+
volumes = data[v].values
38+
cols.append(v)
3839
else:
3940
volumes = None
4041

src/mplfinance/plotting.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,12 @@ def _valid_plot_kwargs():
6666
'''
6767

6868
vkwargs = {
69-
'type' : { 'Default' : 'ohlc',
70-
'Validator' : lambda value: value in ['candle','candlestick','ohlc','bars','ohlc_bars','line', 'renko', 'pnf', 'p&f', 'pointnfigure'] },
69+
'columns' : { 'Default' : ('Open', 'High', 'Low', 'Close', 'Volume'),
70+
'Validator' : lambda value: isinstance(value, (tuple, list))
71+
and len(value) == 5
72+
and all(isinstance(c, str) for c in value) },
73+
'type' : { 'Default' : 'ohlc',
74+
'Validator' : lambda value: value in ['candle','candlestick','ohlc','bars','ohlc_bars','line', 'renko', 'pnf', 'p&f', 'pointnfigure'] },
7175

7276
'style' : { 'Default' : 'default',
7377
'Validator' : lambda value: value in _styles.available_styles() or isinstance(value,dict) },
@@ -169,10 +173,10 @@ def plot( data, **kwargs ):
169173
Also provide ability to plot trading signals, and/or addtional user-defined data.
170174
"""
171175

172-
dates,opens,highs,lows,closes,volumes = _check_and_prepare_data(data)
173-
174176
config = _process_kwargs(kwargs, _valid_plot_kwargs())
175177

178+
dates,opens,highs,lows,closes,volumes = _check_and_prepare_data(data, config)
179+
176180
if config['type'] in VALID_PMOVE_TYPES and config['addplot'] is not None:
177181
err = "`addplot` is not supported for `type='" + config['type'] +"'`"
178182
raise ValueError(err)

0 commit comments

Comments
 (0)