Hi, I've got data in terms of day numbers, and wish to plot it as a 2D scatter plot, with the color denoting the day.
I'd like the colorbar to be annotated in Apr 7 type format... I've tried the following code without success. import numpy as np import matplotlib.pyplot as plt from matplotlib.dates import DateFormatter,DayLocator from matplotlib import cm data = np.arange(24.)+700000. x = np.random.rand(24) y = np.random.rand(24) fig = plt.figure() ax = fig.add_subplot(111) smap = ax.scatter(x,y,s=10,c=data,edgecolors='none',marker='o',cmap=cm.jet) cb = fig.colorbar(smap,orientation='horizontal',shrink=0.7) cax=cb.ax cax.xaxis_date() cax.xaxis.set_major_locator(DayLocator()) cax.xaxis.set_major_formatter(DateFormatter('%b %d')) plt.show() Any ideas on how to do this would be appreciated. George Nurser. The code fails with the trace /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/backends/backend_wx.pyc in _onPaint(self, evt) 1154 drawDC = wx.PaintDC(self) 1155 if not self._isDrawn: -> 1156 self.draw(drawDC=drawDC) 1157 else: 1158 self.gui_repaint(drawDC=drawDC) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/backends/backend_wxagg.pyc in draw(self, drawDC) 57 """ 58 DEBUG_MSG("draw()", 1, self) ---> 59 FigureCanvasAgg.draw(self) 60 61 self.bitmap = _convert_agg_to_wx_bitmap(self.get_renderer(), None) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/backends/backend_agg.pyc in draw(self) 386 387 self.renderer = self.get_renderer() --> 388 self.figure.draw(self.renderer) 389 390 def get_renderer(self): /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *kl) 53 def draw_wrapper(artist, renderer, *kl): 54 before(artist, renderer) ---> 55 draw(artist, renderer, *kl) 56 after(artist, renderer) 57 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/figure.pyc in draw(self, renderer) 770 771 # render the axes --> 772 for a in self.axes: a.draw(renderer) 773 774 # render the figure text /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *kl) 53 def draw_wrapper(artist, renderer, *kl): 54 before(artist, renderer) ---> 55 draw(artist, renderer, *kl) 56 after(artist, renderer) 57 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/axes.pyc in draw(self, renderer, inframe) 1759 1760 for zorder, i, a in dsu: -> 1761 a.draw(renderer) 1762 1763 renderer.close_group('axes') /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/artist.pyc in draw_wrapper(artist, renderer, *kl) 53 def draw_wrapper(artist, renderer, *kl): 54 before(artist, renderer) ---> 55 draw(artist, renderer, *kl) 56 after(artist, renderer) 57 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/axis.pyc in draw(self, renderer, *args, **kwargs) 747 renderer.open_group(__name__) 748 interval = self.get_view_interval() --> 749 for tick, loc, label in self.iter_ticks(): 750 if tick is None: continue 751 if not mtransforms.interval_contains(interval, loc): continue /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/axis.pyc in iter_ticks(self) 688 Iterate through all of the major and minor ticks. 689 """ --> 690 majorLocs = self.major.locator() 691 majorTicks = self.get_major_ticks(len(majorLocs)) 692 self.major.formatter.set_locs(majorLocs) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/dates.pyc in __call__(self) 530 self.rule.set(dtstart=start, until=stop) 531 dates = self.rule.between(dmin, dmax, True) --> 532 return self.raise_if_exceeds(date2num(dates)) 533 534 def _get_unit(self): /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib/ticker.pyc in raise_if_exceeds(self, locs) 680 'raise a RuntimeError if Locator attempts to create more than MAXTICKS locs' 681 if len(locs)>=self.MAXTICKS: --> 682 raise RuntimeError('Locator attempting to generate %d ticks from %s to %s: exceeds Locator.MAXTICKS'%(len(locs), locs[0], locs[-1])) 683 684 return locs RuntimeError: Locator attempting to generate 3654 ticks from 730120.0 to 733773.0: exceeds Locator.MAXTICKS ------------------------------------------------------------------------------ Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users