If all you need is a circular marker in the legend (as opposed to the strict use of proxy artists), then I suggest trying something like:
line1 = Line2D(range(1), range(1), color="white", marker='o', markerfacecolor="red") line2 = Line2D(range(1), range(1), color="white", marker='o',markerfacecolor="green") line3 = Line2D(range(1), range(1), color="white", marker='o',markersize=5, markerfacecolor="slategray") line4 = Line2D(range(1), range(1), color="white", marker='o',markersize=10,markerfacecolor="slategray") plt.legend((line1,line2,line3,line4),('Thing 1','Thing 2', 'Thing 3', 'Thing 4'),numpoints=1, loc=1)
This shows circles of different colors and sizes, where the 2D line drawn is white (hence color="white" ). If you do not want the circles to fill, for example, set markeredgecolor="green" and markerfacecolor="white" .
Other settings
- If you donβt have a white background or the line intersects with the grid in the background,
color="white" will still show the line. linewidth=0 will completely hide the line. - Use the
handletextpad keyword argument for plt.legend to reduce the space between the circle and the label. The value can also be negative, for example. handletextpad=-0.3 . - If you use
seaborn palettes, you can set individual marker colors by specifying a palette. For instance. markerfacecolor=sns.color_palette("cubehelix", 3)[0]
source share