Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Tick.set_pad does not work #88

Closed
leejjoon opened this Issue Apr 21, 2011 · 2 comments

Comments

Projects
None yet
4 participants
Contributor

leejjoon commented Apr 21, 2011

The documentation of Tick.set_pad says

Set the tick label pad in points

but it does not seem to have any effect.
This was reported by NotBrianCox samwisehawkins@gmail.com in the user mailing list and here is his original message.

On Tue, Mar 15, 2011 at 10:43 AM, NotBrianCox samwisehawkins@gmail.com wrote:

I'm plotting a series of sub plots within a figure, where most are small sub
plots, but the last one spans the width of the figure. For the final subplot
only, I want to set the xtick pad to 20. Something like:

import matplotlib.pyplot as plt

fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,1,3)

plt.setp(ax3.xaxis.get_major_ticks(), pad=20)
plt.show()

But this doesn't have any effect on the final plot. I've also tried getting
the ticks individually and calling set_pad(20) i.e.:

for tick in ax3.xaxis.get_major_ticks():
tick.set_pad(20)

But this does't work either. Anyone have an ideas?

Apparently, set_pad only sets Tick._pad and I believe it does not have any effect unless the transform property is also updated. Also, _pad attribute is overwritten by apply_tickdir method.

I feel that the set_pad method should set "_base_pad" attribute and update the transform. Or change the documentation to state these explicitly.

Just in case, pads can be changed using the tick_params method.

ax3.tick_params(pad=20)

This sets _base_pad property and update the transform.

-JJ

@ghost ghost assigned mdboom Jun 15, 2011

efiring added a commit to efiring/matplotlib that referenced this issue Jun 15, 2011

Owner

efiring commented Jun 16, 2011

See pull request #144. I changed _pad to _base_pad in a couple other places as well as having set_pad use the existing machinery for updating the pad. Review of whether those changes make sense, or whether I missed something, is welcome.

Contributor

leejjoon commented Jun 16, 2011

#144 fixes the problem. I quickly went through the patch and the source code of axis.py and everything seems to be addressed. Thanks.

@ddale ddale closed this Jun 16, 2011

magnunor pushed a commit to magnunor/matplotlib that referenced this issue Dec 5, 2013

Merge pull request #88 from francisco-dlp/FIX-align2D
BUG-FIX: the roi argument in align2D and estimate_shift2D was taking (le...

fariza added a commit to fariza/matplotlib that referenced this issue Sep 22, 2016

Merge pull request #88 from fgoudreault/report_doc
Report module documentation, updated tutorial for report generation, …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment