How to adjust space between legend markers and labels

Question:

I want to adjust space between legend markers and labels. Sometime the space is too much as default. Does anyone know how to do this?

Thanks.

Asked By: rhtica

||

Answers:

legend() has a kwarg in called handletextpad which will do what you are looking for. By default, this is set to 0.8. From the docs:

handletextpad : float or None

The pad between the legend handle and text. Measured in font-size
units.

Default is None which will take the value from the
legend.handletextpad rcParam.

So when you call legend, add that kwarg, and experiment with the value. Something like:

ax.legend(handletextpad=0.1)

Consider the following:

import matplotlib.pyplot as plt

fig, (ax1, ax2) = plt.subplots(ncols=2)

ax1.plot(range(5), 'ro', label='handletextpad=0.8')
ax2.plot(range(5), 'bo', label='handletextpad=0.1')

ax1.legend()
ax2.legend(handletextpad=0.1)

plt.show()

enter image description here

Answered By: tmdavison
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.