Trying to change line thickness with matplotlib.mpatches.Patch

Question:

I am manually making a legend as there are too many inputs in my figure, so I use matplotlib.mpatches.Patch to make legend using:

orange_patch = mpatches.Patch(color='orange', label='n=505 distribution', lw = 1)

grey_patch = mpatches.Patch(color = 'grey', label = 'n=100 sampled 100 times', lw = 1)

plt.legend(handles=[orange_patch, grey_patch], frameon = False)

This works, but the lines are very thick. Changing linewidth with "lw" changes the length and width of the line. I am looking to make the line thinner while preserving the length, similar to the thickness shown on the graph. Anyone know how to do this?

upper left shows legend I am trying to change

Asked By: user15108227

||

Answers:

If the thickness (height of the patch) is not to your liking, you can use line2D instead. Documentation here. Here is the updated code for your reference…. Use lw (float) to adjust the thickness

from matplotlib.lines import Line2D

myHandle = [Line2D([], [], color='orange', lw = 3), Line2D([], [], color='gray', lw = 3)]

plt.legend(handles = myHandle, labels=['n=505 distribution', 'n=100 sampled 100 times'], frameon = False)

enter image description here

Answered By: Redox
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.