diff --git a/lib/matplotlib/backends/qt_editor/figureoptions.py b/lib/matplotlib/backends/qt_editor/figureoptions.py index 9d31fa9ced2c..2fef03de061b 100644 --- a/lib/matplotlib/backends/qt_editor/figureoptions.py +++ b/lib/matplotlib/backends/qt_editor/figureoptions.py @@ -252,9 +252,49 @@ def apply_callback(data): old_legend = axes.get_legend() draggable = old_legend._draggable is not None ncols = old_legend._ncols - new_legend = axes.legend(ncols=ncols) - if new_legend: - new_legend.set_draggable(draggable) + fontsize = old_legend._fontsize + loc = old_legend._loc + title = old_legend.get_title().get_text() + alignment = old_legend.get_alignment() + frameon = old_legend.get_frame_on() + borderpad = old_legend.borderpad + labelspacing = old_legend.labelspacing + handleheight = old_legend.handleheight + handletextpad = old_legend.handletextpad + borderaxespad = old_legend.borderaxespad + columnspacing = old_legend.columnspacing + shadow = old_legend.shadow + markerscale = old_legend.markerscale + numpoints = old_legend.numpoints + scatterpoints = old_legend.scatterpoints + mode = old_legend._mode + # bbox gets some value even though None is passed in the legend function + # bbox = old_legend.get_bbox_to_anchor()._bbox + new_legend = axes.legend( + ncols=ncols, + fontsize=fontsize, + loc=loc, + title=title, + alignment=alignment, + frameon=frameon, + borderpad=borderpad, + labelspacing=labelspacing, + handleheight=handleheight, + handletextpad=handletextpad, + borderaxespad=borderaxespad, + columnspacing=columnspacing, + shadow=shadow, + markerscale=markerscale, + numpoints=numpoints, + scatterpoints=scatterpoints, + mode=mode, + # Uncomment this line if bbox default value figured out + # bbox_to_anchor=bbox + ) + # new_legend = deepcopy(old_legend) + # axes.add_artist(new_legend) + if new_legend: + new_legend.set_draggable(draggable) # Redraw figure = axes.get_figure()