When the marker in a legend is a dot, dot and text are not aligned vertically. To solve this I tried following:
l = ax.legend()
for text in l.texts:
text.set_va('center') # Is there some setting for this in matplotlibrc, too??
plt.show()
The vertical alignment of text in a legend seems to be baseline. But no matter whether I choose center, bottom or baseline, etc., things are off:

Zooming in, this is what Matplotlib gives us out of the box:

What I want is also what other software like Inkscape gives me, when aligning two objects vertically:

Can Matplotlib do this for me/us?
This appears to work:
scatterpoints=1 in the call to legend()0 by setting scatteryoffsets=[0] in the call to legend()center_baseline, using for t in l.get_texts(): t.set_va('center_baseline')figure(figsize=(2,2))
scatter([0],[0],marker='s',s=20,label='Thing 1')
scatter([1],[0],marker='s',s=20,label='t')
scatter([2],[0],marker='s',s=20,label='T¹₁')
l = legend(scatterpoints=1,scatteryoffsets=[0],handletextpad=-0.5)
for t in l.get_texts(): t.set_va('center_baseline')
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