From 1685252adaeaeed711ac00f5d43c427221b5ba67 Mon Sep 17 00:00:00 2001 From: TR Date: Wed, 12 Aug 2020 23:02:51 -0400 Subject: [PATCH 1/2] Added lightweight title option --- src/mplfinance/plotting.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/mplfinance/plotting.py b/src/mplfinance/plotting.py index 89a2cfc8..025dc9c1 100644 --- a/src/mplfinance/plotting.py +++ b/src/mplfinance/plotting.py @@ -149,6 +149,9 @@ def _valid_plot_kwargs(): 'title' : { 'Default' : None, # Figure Title 'Validator' : lambda value: isinstance(value,str) }, + + 'title_lightweight' : { 'Default' : None, # Semibold or light title weight + 'Validator' : lambda value: isinstance(value,bool) }, 'axtitle' : { 'Default' : None, # Axes Title (subplot title) 'Validator' : lambda value: isinstance(value,str) }, @@ -630,10 +633,16 @@ def plot( data, **kwargs ): # 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) + if config['title_lightweight']: + fig.suptitle(config['title'],size='x-large',weight='light', va='bottom', y=0.89) + else: + fig.suptitle(config['title'],size='x-large',weight='semibold', va='bottom', y=0.89) else: - fig.suptitle(config['title'],size='x-large',weight='semibold', va='center') - + if config['title_lightweight']: + fig.suptitle(config['title'], size='x-large',weight='light', va='center') + else: + fig.suptitle(config['title'],size='x-large',weight='semibold', va='center') + if config['axtitle'] is not None: axA1.set_title(config['axtitle']) From f5c1338aea85f66e12fc9fb243efc42d45ab844a Mon Sep 17 00:00:00 2001 From: TR Date: Sun, 16 Aug 2020 20:16:45 -0400 Subject: [PATCH 2/2] Implemented dictionary support for plot title kwarg. Allows user to modify title location, alignment, size, and weight. --- src/mplfinance/_version.py | 2 +- src/mplfinance/plotting.py | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 13 deletions(-) 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 025dc9c1..931cd87e 100644 --- a/src/mplfinance/plotting.py +++ b/src/mplfinance/plotting.py @@ -148,10 +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) }, - - 'title_lightweight' : { 'Default' : None, # Semibold or light title weight - 'Validator' : lambda value: isinstance(value,bool) }, + 'Validator' : lambda value: isinstance(value,(str,dict)) }, 'axtitle' : { 'Default' : None, # Axes Title (subplot title) 'Validator' : lambda value: isinstance(value,str) }, @@ -627,21 +624,27 @@ 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. - if config['title_lightweight']: - fig.suptitle(config['title'],size='x-large',weight='light', va='bottom', y=0.89) - else: - 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: - if config['title_lightweight']: - fig.suptitle(config['title'], size='x-large',weight='light', 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: - fig.suptitle(config['title'],size='x-large',weight='semibold', va='center') + 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'])