Small adjustment to legend plotter

This commit is contained in:
rasmusvt 2022-09-27 10:19:33 +02:00
parent 07f304ce97
commit 8aa8164a80

View file

@ -6,6 +6,7 @@ import importlib
import matplotlib.patches as mpatches import matplotlib.patches as mpatches
from matplotlib.lines import Line2D from matplotlib.lines import Line2D
import matplotlib.lines as mlines import matplotlib.lines as mlines
import matplotlib.markers as mmarkers
import itertools import itertools
@ -25,11 +26,13 @@ def prepare_plot(options={}):
else: else:
rc_params = {} rc_params = {}
if 'format_params' in options.keys(): if 'format_params' in options.keys():
format_params = options['format_params'] format_params = options['format_params']
else: else:
format_params = {} format_params = {}
required_format_params = ['single_column_width', 'double_column_width', 'column_type', 'width_ratio', 'aspect_ratio', required_format_params = ['single_column_width', 'double_column_width', 'column_type', 'width_ratio', 'aspect_ratio',
'width', 'height', 'compress_width', 'compress_height', 'upscaling_factor', 'dpi', 'width', 'height', 'compress_width', 'compress_height', 'upscaling_factor', 'dpi',
'nrows', 'ncols', 'grid_ratio_height', 'grid_ratio_width'] 'nrows', 'ncols', 'grid_ratio_height', 'grid_ratio_width']
@ -54,7 +57,7 @@ def prepare_plot(options={}):
format_params = aux.update_options(format_params, required_format_params, default_format_params) format_params = aux.update_options(format_params, required_format_params, default_format_params)
# Reset run commands # Reset run commands
@ -107,6 +110,7 @@ def adjust_plot(fig, ax, options):
'title', 'title',
'legend', 'legend_position', 'legend_ncol', 'legend', 'legend_position', 'legend_ncol',
'subplots_adjust', 'subplots_adjust',
'marker_edges',
'text'] 'text']
default_options = { default_options = {
@ -123,6 +127,7 @@ def adjust_plot(fig, ax, options):
'title': None, # Title of the plot 'title': None, # Title of the plot
'legend': False, 'legend_position': ['lower center', (0.5, -0.1)], 'legend_ncol': 1, # Toggles on/off legend. Specifices legend position and the number of columns the legend should appear as. 'legend': False, 'legend_position': ['lower center', (0.5, -0.1)], 'legend_ncol': 1, # Toggles on/off legend. Specifices legend position and the number of columns the legend should appear as.
'subplots_adjust': [0.1, 0.1, 0.9, 0.9], # Adjustment of the Axes-object within the Figure-object. Fraction of the Figure-object the left, bottom, right and top edges of the Axes-object will start. 'subplots_adjust': [0.1, 0.1, 0.9, 0.9], # Adjustment of the Axes-object within the Figure-object. Fraction of the Figure-object the left, bottom, right and top edges of the Axes-object will start.
'marker_edges': None,
'text': None # Text to show in the plot. Should be a list where the first element is the string, and the second is a tuple with x- and y-coordinates. Could also be a list of lists to show more strings of text. 'text': None # Text to show in the plot. Should be a list where the first element is the string, and the second is a tuple with x- and y-coordinates. Could also be a list of lists to show more strings of text.
} }
@ -229,7 +234,12 @@ def adjust_plot(fig, ax, options):
_ = next(markers) _ = next(markers)
else: else:
active_markers.append(mlines.Line2D([], [], markeredgecolor=next(colours), color=(1, 1, 1, 0), marker=next(markers))) marker = next(markers)
if not marker:
active_markers.append(mlines.Line2D([], [], color=next(colours)))
else:
active_markers.append(mlines.Line2D([], [], markerfacecolor=next(colours), markeredgecolor=options['marker_edges'], markersize=10, color=(1,1,1,0), marker=marker))
active_labels.append(label) active_labels.append(label)