From: <ef...@us...> - 2007-11-05 02:36:22
|
Revision: 4106 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=4106&view=rev Author: efiring Date: 2007-11-04 18:36:20 -0800 (Sun, 04 Nov 2007) Log Message: ----------- Added easy access to minor tick properties (Pierre G-M) Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py trunk/matplotlib/lib/matplotlib/axis.py Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2007-11-05 01:36:15 UTC (rev 4105) +++ trunk/matplotlib/lib/matplotlib/axes.py 2007-11-05 02:36:20 UTC (rev 4106) @@ -1173,8 +1173,8 @@ # Otherwise, it will compute the bounds of it's current data # and the data in xydata xys = npy.asarray(xys) - + self.dataLim.update_numerix_xy(xys, -1) @@ -1631,25 +1631,33 @@ self.xaxis.set_minor_formatter(mticker.NullFormatter()) self.transData.get_funcx().set_type( mtrans.IDENTITY ) - def get_xticks(self): + def get_xticks(self, minor=False): 'Return the x ticks as a list of locations' - return self.xaxis.get_ticklocs() + return self.xaxis.get_ticklocs(minor=minor) - def set_xticks(self, ticks): + def set_xticks(self, ticks, minor=False): """ Set the x ticks with list of ticks ACCEPTS: sequence of floats """ - return self.xaxis.set_ticks(ticks) + return self.xaxis.set_ticks(ticks, minor=minor) - def get_xticklabels(self): + def get_xmajorticklabels(self): 'Get the xtick labels as a list of Text instances' - return cbook.silent_list('Text xticklabel', self.xaxis.get_ticklabels()) + return cbook.silent_list('Text xticklabel', self.xaxis.get_majorticklabels()) - def set_xticklabels(self, labels, fontdict=None, **kwargs): + def get_xminorticklabels(self): + 'Get the xtick labels as a list of Text instances' + return cbook.silent_list('Text xticklabel', self.xaxis.get_minorticklabels()) + + def get_xticklabels(self, minor=False): + 'Get the xtick labels as a list of Text instances' + return cbook.silent_list('Text xticklabel', self.xaxis.get_ticklabels(minor=minor)) + + def set_xticklabels(self, labels, fontdict=None, minor=False, **kwargs): """ - SET_XTICKLABELS(labels, fontdict=None, **kwargs) + set_xticklabels(labels, fontdict=None, minor=False, **kwargs) Set the xtick labels with list of strings labels Return a list of axis text instances. @@ -1659,7 +1667,7 @@ ACCEPTS: sequence of strings """ - return self.xaxis.set_ticklabels(labels, fontdict, **kwargs) + return self.xaxis.set_ticklabels(labels, fontdict, minor=minor, **kwargs) set_xticklabels.__doc__ = cbook.dedent(set_xticklabels.__doc__) % martist.kwdocd def invert_yaxis(self): @@ -1795,25 +1803,33 @@ self.yaxis.set_minor_formatter(mticker.NullFormatter()) self.transData.get_funcy().set_type( mtrans.IDENTITY ) - def get_yticks(self): + def get_yticks(self, minor=False): 'Return the y ticks as a list of locations' - return self.yaxis.get_ticklocs() + return self.yaxis.get_ticklocs(minor=minor) - def set_yticks(self, ticks): + def set_yticks(self, ticks, minor=False): """ Set the y ticks with list of ticks ACCEPTS: sequence of floats """ - return self.yaxis.set_ticks(ticks) + return self.yaxis.set_ticks(ticks, minor=minor) - def get_yticklabels(self): - 'Get the ytick labels as a list of Text instances' - return cbook.silent_list('Text yticklabel', self.yaxis.get_ticklabels()) + def get_ymajorticklabels(self): + 'Get the xtick labels as a list of Text instances' + return cbook.silent_list('Text yticklabel', self.yaxis.get_majorticklabels()) - def set_yticklabels(self, labels, fontdict=None, **kwargs): + def get_yminorticklabels(self): + 'Get the xtick labels as a list of Text instances' + return cbook.silent_list('Text yticklabel', self.yaxis.get_minorticklabels()) + + def get_yticklabels(self, minor=False): + 'Get the xtick labels as a list of Text instances' + return cbook.silent_list('Text yticklabel', self.yaxis.get_ticklabels(minor=minor)) + + def set_yticklabels(self, labels, fontdict=None, minor=False, **kwargs): """ - SET_YTICKLABELS(labels, fontdict=None, **kwargs) + set_yticklabels(labels, fontdict=None, minor=False, **kwargs) Set the ytick labels with list of strings labels. Return a list of Text instances. @@ -1823,7 +1839,7 @@ ACCEPTS: sequence of strings """ - return self.yaxis.set_ticklabels(labels, fontdict, **kwargs) + return self.yaxis.set_ticklabels(labels, fontdict, minor=minor, **kwargs) set_yticklabels.__doc__ = cbook.dedent(set_yticklabels.__doc__) % martist.kwdocd def toggle_log_lineary(self): @@ -3702,7 +3718,7 @@ if xerr is not None: if iterable(xerr) and len(xerr)==2: - # using list comps rather than arrays to preserve units + # using list comps rather than arrays to preserve units left = [thisx-thiserr for (thisx, thiserr) in cbook.safezip(x,xerr[0])] right = [thisx+thiserr for (thisx, thiserr) in cbook.safezip(x,xerr[1])] else: Modified: trunk/matplotlib/lib/matplotlib/axis.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axis.py 2007-11-05 01:36:15 UTC (rev 4105) +++ trunk/matplotlib/lib/matplotlib/axis.py 2007-11-05 02:36:20 UTC (rev 4106) @@ -520,8 +520,8 @@ def get_children(self): children = [self.label] majorticks = self.get_major_ticks() - minorticks = self.get_minor_ticks() - + minorticks = self.get_minor_ticks() + children.extend(majorticks) children.extend(minorticks) return children @@ -661,24 +661,62 @@ 'Return the depth of the axis used by the picker' return self.pickradius - def get_ticklabels(self): - 'Return a list of Text instances for ticklabels' + def get_majorticklabels(self): + 'Return a list of Text instances for the major ticklabels' ticks = self.get_major_ticks() labels1 = [tick.label1 for tick in ticks if tick.label1On] labels2 = [tick.label2 for tick in ticks if tick.label2On] - return silent_list('Text ticklabel', labels1+labels2) + return silent_list('Text major ticklabel', labels1+labels2) - def get_ticklines(self): - 'Return the ticklines lines as a list of Line2D instance' + def get_minorticklabels(self): + 'Return a list of Text instances for the minor ticklabels' + ticks = self.get_minor_ticks() + labels1 = [tick.label1 for tick in ticks if tick.label1On] + labels2 = [tick.label2 for tick in ticks if tick.label2On] + return silent_list('Text minor ticklabel', labels1+labels2) + + def get_ticklabels(self, minor=False): + 'Return a list of Text instances for ticklabels' + if minor: + return self.get_minorticklabels() + return self.get_majorticklabels() + + def get_majorticklines(self): + 'Return the major tick lines as a list of Line2D instances' lines = [] - ticks = self.get_major_ticks() + ticks = self.get_major_ticks() for tick in ticks: lines.append(tick.tick1line) lines.append(tick.tick2line) return silent_list('Line2D ticklines', lines) - def get_ticklocs(self): + def get_minorticklines(self): + 'Return the minor tick lines as a list of Line2D instances' + lines = [] + ticks = self.get_minor_ticks() + for tick in ticks: + lines.append(tick.tick1line) + lines.append(tick.tick2line) + return silent_list('Line2D ticklines', lines) + + def get_ticklines(self, minor=False): + 'Return the tick lines as a list of Line2D instances' + if minor: + return self.get_minorticklines() + return self.get_majorticklines() + + def get_majorticklocs(self): + "Get the major tick locations in data coordinates as a numpy array" + return self.major.locator() + + def get_minorticklocs(self): + "Get the minor tick locations in data coordinates as a numpy array" + return self.minor.locator() + + def get_ticklocs(self, minor=False): "Get the tick locations in data coordinates as a numpy array" + if minor: + return self.minor.locator() return self.major.locator() def _get_tick(self, major): @@ -718,15 +756,12 @@ def get_major_ticks(self): 'get the tick instances; grow as necessary' - numticks = len(self.major.locator()) - if len(self.majorTicks)<numticks: # update the new tick label properties from the old protoTick = self.majorTicks[0] for i in range(numticks-len(self.majorTicks)): tick = self._get_tick(major=True) - #tick = protoTick if self._gridOnMajor: tick.gridOn = True self._copy_tick_props(protoTick, tick) self.majorTicks.append(tick) @@ -915,24 +950,28 @@ def set_ticklabels(self, ticklabels, *args, **kwargs): """ Set the text values of the tick labels. Return a list of Text - instances. + instances. Use kwarg minor=True to select minor ticks. ACCEPTS: sequence of strings """ #ticklabels = [str(l) for l in ticklabels] + minor = kwargs.pop('minor', False) + if minor: + self.set_minor_formatter(FixedFormatter(ticklabels)) + ticks = self.get_minor_ticks() + else: + self.set_major_formatter( FixedFormatter(ticklabels) ) + ticks = self.get_major_ticks() - self.set_major_formatter( FixedFormatter(ticklabels) ) - - ret = [] - for i, tick in enumerate(self.get_major_ticks()): + for i, tick in enumerate(ticks): if i<len(ticklabels): tick.label1.set_text(ticklabels[i]) ret.append(tick.label1) tick.label1.update(kwargs) return ret - def set_ticks(self, ticks): + def set_ticks(self, ticks, minor=False): """ Set the locations of the tick marks from sequence ticks @@ -940,9 +979,13 @@ """ ### XXX if the user changes units, the information will be lost here ticks = self.convert_units(ticks) - self.set_major_locator( FixedLocator(ticks) ) self.get_view_interval().update(ticks,0) - return self.get_major_ticks() + if minor: + self.set_minor_locator(FixedLocator(ticks)) + return self.get_minor_ticks() + else: + self.set_major_locator( FixedLocator(ticks) ) + return self.get_major_ticks() def _update_label_position(self, bboxes, bboxes2): """ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |