Daniel, I found that I came across this often, so I created three functions (one for sharing x, one for y, and one for both). In looking over them right now, there may be some inconsistencies between their style, but the idea is there. I am pasting them below in case they are useful to someone else. The original ideas came from figure.autofmt_xdate.
-Sterling def autofmt_sharexy(fig=None): if fig==None: fig = gcf() for a in fig.axes: if a.is_first_col(): if not a.is_first_row(): a.get_yticklabels()[-1].set_visible(False) else: for yl in a.get_yticklabels(): yl.set_visible(False) a.set_ylabel('') if not a.is_last_row(): for xl in a.get_xticklabels(): xl.set_visible(False) a.set_xlabel('') else: if not a.is_last_col(): a.get_xticklabels()[-1].set_visible(False) subplots_adjust(hspace=0,wspace=0) def autofmt_sharey(trim_xlabel=True,fig=None): if fig==None: fig = gcf() from matplotlib.ticker import MaxNLocator for a in fig.axes: if a.is_first_col(): if not a.is_first_row(): a.get_yticklabels()[-1].set_visible(False) else: for yl in a.get_yticklabels(): yl.set_visible(False) a.set_ylabel('') if trim_xlabel: a.get_xticklabels()[0].set_visible(False) if not trim_xlabel: a.xaxis.set_major_locator(MaxNLocator(6)) xtl = a.get_xticklabels() setp(xtl[0::2],visible=False) subplots_adjust(wspace=0) def autofmt_sharex(fig=None): if fig==None: fig = gcf() nax=len(fig.get_axes()) if nax==0: return try: nr=fig.axes[0].numRows nc=fig.axes[0].numCols except: print 'Unable to determine numRows,numCols' return def is_last_row(n): if n>nax-nc-1: return True else: return False for i,ax in enumerate(fig.axes): if not is_last_row(i): for xt in ax.get_xticklabels(): xt.set_visible(False) ax.set_xlabel('') -Sterling On Sep 13, 2012, at 1:23PM, Daniel Welling wrote: > Greetings, all. > > I have an issue: I have several axes stacked in a column with a common time > vector on each x-axis. Each plot is a contour, so overplotting is not an > option. In a perfect world, I want the following: > 1) The subplots are tightly spaced such that with ax.grid() activated, the > grid lines appear continuous. This makes comparing simultaneous > characteristics between subplots very easy. > 2) The subplots are linked via the "sharex" keyword so I can move them all in > unison. > 3) Only the bottommost subplot has x tick labels; on other plots, the long > time-formatted labels stick out of the left and right of the plots. > > Items 2 and 3 are contradictory: if I turn off tick labels (e.g. > ax.set_xticklabels('')) on one axes, the others turn off as well, including > the bottom axes. That is bad. > Does anyone know of a good workaround for this? > > Thanks for your help. > > -dw > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users