diff --git a/src/mplfinance/_version.py b/src/mplfinance/_version.py index 62e1733b..109f75a8 100644 --- a/src/mplfinance/_version.py +++ b/src/mplfinance/_version.py @@ -1,5 +1,5 @@ -version_info = (0, 12, 7, 'alpha', 0) +version_info = (0, 12, 7, 'alpha', 1) _specifier_ = {'alpha': 'a','beta': 'b','candidate': 'rc','final': ''} diff --git a/src/mplfinance/plotting.py b/src/mplfinance/plotting.py index 89a2cfc8..931cd87e 100644 --- a/src/mplfinance/plotting.py +++ b/src/mplfinance/plotting.py @@ -148,7 +148,7 @@ def _valid_plot_kwargs(): 'Validator' : lambda value: mcolors.is_color_like(value) }, 'title' : { 'Default' : None, # Figure Title - 'Validator' : lambda value: isinstance(value,str) }, + 'Validator' : lambda value: isinstance(value,(str,dict)) }, 'axtitle' : { 'Default' : None, # Axes Title (subplot title) 'Validator' : lambda value: isinstance(value,str) }, @@ -624,16 +624,28 @@ def plot( data, **kwargs ): if external_axes_mode: volumeAxes.tick_params(axis='x',rotation=xrotation) volumeAxes.xaxis.set_major_formatter(formatter) - + if config['title'] is not None: if config['tight_layout']: # IMPORTANT: 0.89 is based on the top of the top panel # being at 0.18+0.7 = 0.88. See _panels.py # If the value changes there, then it needs to change here. - fig.suptitle(config['title'],size='x-large',weight='semibold', va='bottom', y=0.89) + title_kwargs = dict(size='x-large',weight='semibold', va='bottom', y=0.89) else: - fig.suptitle(config['title'],size='x-large',weight='semibold', va='center') - + title_kwargs = dict(size='x-large',weight='semibold', va='center') + if isinstance(config['title'],dict): + title_dict = config['title'] + if 'title' not in title_dict: + raise ValueError('Must have "title" entry in title dict') + else: + title = title_dict['title'] + del title_dict['title'] + title_kwargs.update(title_dict) # allows override default values set by mplfinance above + else: + title = config['title'] # config['title'] is a string + fig.suptitle(title,**title_kwargs) + + if config['axtitle'] is not None: axA1.set_title(config['axtitle'])