In Matplotlib, i\'m trying to make a legend with colored \"markers\" like this one :
this one has been made using the scatter function, but is
You could subclass the HandlerBase to create a handler from a tuple of (color, marker).
import matplotlib.pyplot as plt
from matplotlib.legend_handler import HandlerBase
list_color = ["c", "gold", "crimson"]
list_mak = ["d","s","o"]
list_lab = ['Marker 1','Marker 2','Marker 3']
ax = plt.gca()
class MarkerHandler(HandlerBase):
def create_artists(self, legend, tup,xdescent, ydescent,
width, height, fontsize,trans):
return [plt.Line2D([width/2], [height/2.],ls="",
marker=tup[1],color=tup[0], transform=trans)]
ax.legend(list(zip(list_color,list_mak)), list_lab,
handler_map={tuple:MarkerHandler()})
plt.show()