From: <js...@us...> - 2009-11-06 13:05:26
|
Revision: 7939 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=7939&view=rev Author: jswhit Date: 2009-11-06 13:05:13 +0000 (Fri, 06 Nov 2009) Log Message: ----------- patch for drawmapscale from Stephane Raynaud. Modified Paths: -------------- trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/README trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/Changelog =================================================================== --- trunk/toolkits/basemap/Changelog 2009-11-04 20:22:35 UTC (rev 7938) +++ trunk/toolkits/basemap/Changelog 2009-11-06 13:05:13 UTC (rev 7939) @@ -1,4 +1,6 @@ version 0.99.5 (not yet released) + * patch from Stephane Raynaud to pass format string to + drawmapscale, and allow units='m'. * updated proj4 source to version 4.7.0, pyproj to 1.8.6. * add "is_land" method to check whether a point is over land or water. Modified: trunk/toolkits/basemap/README =================================================================== --- trunk/toolkits/basemap/README 2009-11-04 20:22:35 UTC (rev 7938) +++ trunk/toolkits/basemap/README 2009-11-06 13:05:13 UTC (rev 7939) @@ -141,5 +141,6 @@ Pierre Gerard-Marchant Christoph Gohlke Eric Bruning +Stephane Raynaud for valuable contributions. Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-04 20:22:35 UTC (rev 7938) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2009-11-06 13:05:13 UTC (rev 7939) @@ -3319,7 +3319,8 @@ def drawmapscale(self,lon,lat,lon0,lat0,length,barstyle='simple',\ units='km',fontsize=9,yoffset=None,labelstyle='simple',\ - fontcolor='k',fillcolor1='w',fillcolor2='k',ax=None): + fontcolor='k',fillcolor1='w',fillcolor2='k',ax=None,\ + format='%d'): """ Draw a map scale at ``lon,lat`` of length ``length`` representing distance in the map @@ -3343,6 +3344,8 @@ displayed on the top of the scale bar. For ``simple``, just the units are display on top and the distance below the scale bar. + If equal to False, plot an empty label. + format a string formatter to format numeric values yoffset yoffset controls how tall the scale bar is, and how far the annotations are offset from the scale bar. Default is 0.02 times the height of @@ -3360,17 +3363,15 @@ if self.projection == 'cyl': raise ValueError("cannot draw map scale for projection='cyl'") # convert length to meters + lenlab = length if units == 'km': - lenlab = length length = length*1000 elif units == 'mi': - lenlab = length length = length*1609.344 elif units == 'nmi': - lenlab = length length = length*1852 - else: - msg = "units must be 'km' (kilometers), "\ + elif units != 'm': + msg = "units must be 'm' (meters), 'km' (kilometers), "\ "'mi' (miles) or 'nmi' (nautical miles)" raise KeyError(msg) # reference point and center of scale. @@ -3411,6 +3412,8 @@ labelstr = units elif labelstyle == 'fancy': labelstr = units+" (scale factor %4.2f at %s)"%(scalefact,lonlatstr) + elif labelstyle == False: + labelstr = '' else: raise KeyError("labelstyle must be 'simple' or 'fancy'") # default y offset is 2 percent of map height. @@ -3456,15 +3459,15 @@ rets.append(self.plot([xc,xc],[ytick,ybottom],color=fontcolor)[0]) rets.append(self.plot([x4,x4],[ytick,ybottom],color=fontcolor)[0]) #label 3 tick marks - rets.append(ax.text(x1,ytext,'%d' % (0),\ + rets.append(ax.text(x1,ytext,format % (0),\ horizontalalignment='center',\ verticalalignment='top',\ fontsize=fontsize,color=fontcolor)) - rets.append(ax.text(xc,ytext,'%d' % (0.5*lenlab),\ + rets.append(ax.text(xc,ytext,format % (0.5*lenlab),\ horizontalalignment='center',\ verticalalignment='top',\ fontsize=fontsize,color=fontcolor)) - rets.append(ax.text(x4,ytext,'%d' % (lenlab),\ + rets.append(ax.text(x4,ytext,format % (lenlab),\ horizontalalignment='center',\ verticalalignment='top',\ fontsize=fontsize,color=fontcolor)) @@ -3478,7 +3481,7 @@ rets.append(self.plot([x1,x4],[yc,yc],color=fontcolor)[0]) rets.append(self.plot([x1,x1],[yc-yoffset,yc+yoffset],color=fontcolor)[0]) rets.append(self.plot([x4,x4],[yc-yoffset,yc+yoffset],color=fontcolor)[0]) - rets.append(ax.text(xc,yc-yoffset,'%d' % lenlab,\ + rets.append(ax.text(xc,yc-yoffset,format % lenlab,\ verticalalignment='top',horizontalalignment='center',\ fontsize=fontsize,color=fontcolor)) #put units, scale factor on top This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |