Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f9d2381

Browse files
committed
BUG: adjust tick label location when tick length changes
Closes #7114.
1 parent f52af63 commit f9d2381

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

lib/matplotlib/axis.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -300,33 +300,30 @@ def _apply_params(self, **kw):
300300
switches = [k for k in kw if k in switchkw]
301301
for k in switches:
302302
setattr(self, k, kw.pop(k))
303-
dirpad = [k for k in kw if k in ['pad', 'tickdir']]
304-
if dirpad:
303+
newmarker = [k for k in kw if k in ['size', 'width', 'pad', 'tickdir']]
304+
if newmarker:
305+
self._size = kw.pop('size', self._size)
306+
self._width = kw.pop('width', self._width)
305307
self._base_pad = kw.pop('pad', self._base_pad)
308+
# apply_tickdir makes _pad and _tickmarkers
306309
self.apply_tickdir(kw.pop('tickdir', self._tickdir))
310+
self.tick1line.set_marker(self._tickmarkers[0])
311+
self.tick2line.set_marker(self._tickmarkers[1])
312+
for line in (self.tick1line, self.tick2line):
313+
line.set_markersize(self._size)
314+
line.set_markeredgewidth(self._width)
315+
# _get_text1_transform uses _pad from apply_tickdir
307316
trans = self._get_text1_transform()[0]
308317
self.label1.set_transform(trans)
309318
trans = self._get_text2_transform()[0]
310319
self.label2.set_transform(trans)
311-
self.tick1line.set_marker(self._tickmarkers[0])
312-
self.tick2line.set_marker(self._tickmarkers[1])
313320
tick_kw = dict([kv for kv in six.iteritems(kw)
314321
if kv[0] in ['color', 'zorder']])
315322
if tick_kw:
316323
self.tick1line.set(**tick_kw)
317324
self.tick2line.set(**tick_kw)
318325
for k, v in six.iteritems(tick_kw):
319326
setattr(self, '_' + k, v)
320-
tick_list = [kv for kv
321-
in six.iteritems(kw) if kv[0] in ['size', 'width']]
322-
for k, v in tick_list:
323-
setattr(self, '_' + k, v)
324-
if k == 'size':
325-
self.tick1line.set_markersize(v)
326-
self.tick2line.set_markersize(v)
327-
else:
328-
self.tick1line.set_markeredgewidth(v)
329-
self.tick2line.set_markeredgewidth(v)
330327
label_list = [k for k in six.iteritems(kw)
331328
if k[0] in ['labelsize', 'labelcolor']]
332329
if label_list:

0 commit comments

Comments
 (0)