I create a custom legend, but he does not show the hatches of the patches. Whats wrong?
import matplotlib.pyplot as plt
from matplotlib.patches import Patch
from pylab import *
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
fig1 = plt.figure(1,(10,10))
plt.plot(t, s)
plt.xlabel('time (s)')
plt.ylabel('voltage (mV)')
plt.title('About as simple as it gets, folks')
plt.grid(True)
far_patch = Patch(color=[168/256,175/256,175/256], label='Farshore')
near_patch = Patch(color=[168/256,175/256,175/256], label='Nearshore', hatch ='o')
legend=plt.legend(handles=[far_patch, near_patch],loc='upper left', handlelength=1, handleheight=1,labelspacing=0, fontsize=8,borderaxespad=0.3,handletextpad=0.2)
frame = legend.get_frame()
frame.set_edgecolor('none')
figureName='test'
plt.savefig(figureName+'.pdf',bbox_inches='tight',dpi=fig1.dpi)
plt.show()
Thanks
The color keyword from the Patch
object will override both the facecolor and the edgecolor. So its propably showing the hatch correctly, but in the same color as the patch. Specifically setting the facecolor
will solve it, and the edgecolor
can be used to color the hatch.
So try:
near_patch = Patch(facecolor=[168/256,175/256,175/256],
label='Nearshore', hatch ='o')
You can set the linewidth
to zero if you only want to see the hatch.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With