I would like to build 2 "blocks" mixing the color boxes and text with another which contains numerical values corresponding to the color box and text associated.
For the moment, I have this script which uses getdist library :
g = plots.get_subplot_plotter()
g.add_legend(['Opt. Flat. No Gamma. - WL - FoM = 47.05',
'Opt. Flat. No Gamma. - GCsp - FoM = 52.12',
'Opt. Flat. No Gamma. - GCph - FoM = 61.88',
'Opt. Flat. No Gamma. - GCsp + GCph+WL+XC - FoM = 1209.80',
'Opt. Flat. No Gamma. - Common bias - FoM = 1567.18'],
legend_loc='upper right',
bbox_to_anchor=(bottom_right_plot, top_left_plot),
bbox_transform=plt.gcf().transFigure, # this is the x and y coords we extracted above
borderaxespad = 0, # this means there is no padding around the legend
)
and I get the following legend on the upper right forming only one block :
Now I would like to be able to have 2 blocks inside the same frame of the legend : from a first side on the left, I want the color boxes and text, and from another side, I would like to get the numerical values like "FoM =" 47.05
on the right, then forming 2 blocks separated by a chosen space chosen.
If I use 2 times the add_legend
function instead of above (just one calling),
# First legend
g.add_legend(['Opt. Flat. No Gamma. - WL :',
'Opt. Flat. No Gamma. - GCsp :',
'Opt. Flat. No Gamma. - GCph :',
'Opt. Flat. No Gamma. - GCsp +(GCph+WL+XC) :',
'Opt. Flat. No Gamma. - Common bias :'],
legend_loc='upper right',
bbox_to_anchor=(bottom_right_plot, top_left_plot),
bbox_transform=plt.gcf().transFigure, # this is the x and y coords we extracted above
borderaxespad = 0, # this means there is no padding around the legend
)
# Second legend
g.add_legend([
' FoM = 47.05',
' FoM = 52.12',
'FoM = 61.88',
'FoM = 1209.80',
'FoM = 1567.18'],
legend_loc='upper right',
bbox_to_anchor=(bottom_right_plot, top_left_plot),
bbox_transform=plt.gcf().transFigure, # this is the x and y coords we extracted above
borderaxespad = 0, # this means there is no padding around the legend
)
I get with this :
But as you can see, all the text part is not displayed, just color boxes and numerical values.
How to make 2 blocks separated by a chosen space and inside a single frame, one block on the left which contains the color boxes and text, and a second one pushed on the right and which contains the part of all the "FoM = ...." aligned with the first block ?
question from:
https://stackoverflow.com/questions/65545743/python-legend-with-getdist-tool-put-a-first-block-to-the-left-and-push-a-secon