I just refactored some custom code to make use of
axes_grid1.ImageGrid, and I think I've come across a bug (see below).
It looks like the tick labelsize doesn't get passed properly to the
parasite axes.

I'm using Python2.6, matplotlib-1.0.0 release, and the Qt4Agg backend.

Also, I noticed that the Grid.__init__ super-class constructor isn't
called in the ImageGrid.__init__ constructor; should it be?

By way of feature request, I'd prefer to be able to specify share_x
and share_y in the constructor, but that's not available in ImageGrid,
only in Grid.

If there's agreement that this is bug, I'll file it on the sourceforge
tracker. Is this fixed in SVN, or does anyone have workaround, e.g.,
some way to convert 'x-small' to the correct integer size, or a
different method to call?

Thanks,
    Justin

========
from mpl_toolkits.axes_grid1 import ImageGrid
import pylab
import numpy
row_height = 10
fi = pylab.figure()
grid = ImageGrid(fi, 111, nrows_ncols=(5,1), share_all=False, label_mode='l')
for i in range(5):
    a = abs(numpy.random.randn(5,100))
    im = grid[i].imshow(a)

cb = grid.cbar_axes[0].colorbar(im)
for ax in grid.axes_all:
    ax.set_yticks([])

# oops - this only changes the lowest Axes formatting
grid.axes_llc.tick_params(direction='out', labelsize='x-small')
pylab.show()
# Now pan to the left a bit-- you'll see the large 0 from the 100 xtick_label

# Let's try explicitly setting all of the xtick sizes. Kablooie.
for ax in grid.axes_all:
    ax.tick_params(direction='out', labelsize='x-small')


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/<ipython console> in <module>()
.../matplotlib/axes.pyc in tick_params(self, axis, **kwargs)
   2215             xkw.pop('labelleft', None)
   2216             xkw.pop('labelright', None)
-> 2217             self.xaxis.set_tick_params(**xkw)
   2218         if axis in ['y', 'both']:
   2219             ykw = dict(kwargs)
.../matplotlib/axis.pyc in set_tick_params(self, which, reset, **kw)
    795             if which == 'major' or which == 'both':
    796                  for tick in self.majorTicks:
--> 797                     tick._apply_params(**self._major_tick_kw)
    798             if which == 'minor' or which == 'both':
    799                  for tick in self.minorTicks:
.../matplotlib/axis.pyc in _apply_params(self, **kw)
    274         if dirpad:
    275             self._base_pad = kw.pop('pad', self._base_pad)
--> 276             self.apply_tickdir(kw.pop('tickdir', self._tickdir))
    277             trans = self._get_text1_transform()[0]
    278             self.label1.set_transform(trans)
.../matplotlib/axis.pyc in apply_tickdir(self, tickdir)
    331         else:
    332             self._tickmarkers = (mlines.TICKDOWN, mlines.TICKUP)
--> 333             self._pad = self._base_pad + self._size
    334
    335
TypeError: unsupported operand type(s) for +: 'int' and 'str'

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to