|
From: ChaoYue <cha...@gm...> - 2014-06-16 16:59:51
|
Hi Andruska, The Basemap.colorbar has a "size" keyword to allow you have the shrink-like function to adjust the size of the colorbar. Otherwise you can creat an axes on the exact position you want to hold the colorbar, like below I have prepared an example for you: arr = np.arange(100).reshape(10,10) fig,ax = plt.subplots(1,1) cs = ax.imshow(arr) ax.set_position([0.2, 0.3, 0.6, 0.6]) axt = fig.add_axes([0.4,0.2,0.4,0.05]) cbar = plt.colorbar(cs,cax=axt,orientation='horizontal') fig.text(0.25,0.22,'I am label',va='center',size=13) draw() I think it's hard to use the colorbar.set_label put the label directly on the left of your colorbar, I rather suggest you to use fig.text to position exactly a text for your label. At the beginning of matplotlib you might feel confused, but after investing a significant amount of time you feel it extremely flexible, and going to like it :) Cheers, Chao On Mon, Jun 16, 2014 at 6:32 PM, Andruska, Michael [via matplotlib] < ml-...@n5...> wrote: > Hi all, > > > > I am having great difficulty understanding how to change the size of my > basemap colorbar, altering its position and moving the text label all at > the same time. I would like to: > > 1. Shrink the size of the colorbar (there doesn’t seem to be a > shrink property in the basemap.colorbar() method (only plt.colorbar() or > fig.colorbar()) > > 2. Move the bar so it is not centered but instead so its right edge > is aligned vertically with the right end of the basemap. > > 3. Move the colorbar W/m^2 text label so it is not below the > colorbar but is instead directly to its left. > > > > I looked up several other responses online that mentioned doing things > such as adding a second axes, or using the shrink command from > plt.colorbar(), and changing some other properties such as padding, but in > the end, most of these alterations seem to introduce another problem when I > try them. Even after viewing their documentation, I still do not fully > understand their proper usage. Also, I tried a few properties listed in the > matplotlib documentation such as anchor and panchor in my the > fig.colorbar() method in attempt to move the bar around but when I tried to > run it, the keyword was not recognized by the interpreter and produced an > error (it seems strange that some of the keywords listed in the docs aren’t > being recognized; and I’m pretty sure I have the most current matplotlib > version too). You can see some of the commented commands I tried in the > code below (not all at once, of course, but just in various conjunctions > with one another). Here is an example of my code and an attached example of > what the plot currently looks like after running said code. Any helpful > advice would be greatly appreciated. So confused right now and I feel like > I’ve read the docs over and over to little avail (P.S. Getting down to the > nitty gritty of working with matplotlib objects and understanding its inner > workings to customize my plots better is really confusing, even with the > docs, (sigh)): > > > > swi = swi.reshape(1059, 1799) > > lat = lat.reshape(1059, 1799) > > lon = lon.reshape(1059, 1799) > > > > def plot_conus(): > > m = mpl_toolkits.basemap.Basemap( > > llcrnrlon=-135.0, > > llcrnrlat=19.0, > > urcrnrlon=-60.0, > > urcrnrlat=54.0, > > projection='mill', > > resolution='c') > > m.drawcoastlines() > > m.drawcountries() > > m.drawstates() > > # draw parallels > > parallels = np.arange(0.,90,10.) > > m.drawparallels(parallels,labels=[1,0,0,0],fontsize=10) > > # draw meridians > > meridians = np.arange(180.,360.,10.) > > m.drawmeridians(meridians,labels=[0,0,0,1],fontsize=10) > > return m > > > > # find hex color values at http://www.colorpicker.com > > swi_colors = [ > > #"#f800fd", # light purple > > #"#9854c6", # dark purple > > "#04e9e7", > > "#019ff4", > > "#0300f4", > > "#02fd02", > > "#01c501", > > "#008e00", > > "#fdf802", > > "#e5bc00", > > "#fd9500", > > "#fd0000", > > "#d40000", > > "#bc0000", > > "#A10505" # brick > > ] > > > > swi_colormap = matplotlib.colors.ListedColormap(swi_colors) > > > > m = plot_conus() > > > > levels = [] > > for i in range(13): > > levels.append(i*90.0) > > > > # create black and white cross at observatory location on map > > site_lon = -87.99495 > > site_lat = 41.70121 > > x_site, y_site = m(site_lon, site_lat) > > m.plot(x_site, y_site, 'w+', markersize=30, markeredgewidth=8) # white > cross > > m.plot(x_site, y_site, 'k+', markersize=25, markeredgewidth=3) # black > cross > > > > norm = matplotlib.colors.BoundaryNorm(levels, 13) > > cax = m.pcolormesh(lon, lat, swi, latlon=True, norm=norm, > > cmap=swi_colormap) > > > > #cbar = m.colorbar(cax) > > fig = plt.gcf() > > #ax = plt.gca() > > #cbar = fig.colorbar(cax, orientation='horizontal', shrink=0.75) > > #cbaxes = fig.add_axes([0.8, 0.1, 0.03, 0.8]) > > #cb = fig.colorbar(cax) > > cbar = m.colorbar(cax, location='bottom', pad='6%') > > cbar.set_label('$W/m^2$', fontsize=18) > > > > plt.title('NOAA LAPS GHI, RT ' + modelrun_time_label + ', VT ' + > fcst_time_label) > > plt.show() > > > > > > ------------------------------------------------------------------------------ > > HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions > Find What Matters Most in Your Big Data with HPCC Systems > Open Source. Fast. Scalable. Simple. Ideal for Dirty Data. > Leverages Graph Analysis for Fast Processing & Easy Data Exploration > http://p.sf.net/sfu/hpccsystems > _______________________________________________ > Matplotlib-users mailing list > [hidden email] <http://user/SendEmail.jtp?type=node&node=43534&i=0> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > *ghi.gif* (104K) Download Attachment > <http://matplotlib.1069221.n5.nabble.com/attachment/43534/0/ghi.gif> > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://matplotlib.1069221.n5.nabble.com/Altering-Basemap-Colobar-and-Label-positioning-tp43534.html > To start a new topic under matplotlib - users, email > ml-...@n5... > To unsubscribe from matplotlib, click here > <http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=2&code=Y2hhb3l1ZWpveUBnbWFpbC5jb218MnwxMzg1NzAzMzQx> > . > NAML > <http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > -- please visit: http://www.globalcarbonatlas.org/ *********************************************************************************** Chao YUE Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) UMR 1572 CEA-CNRS-UVSQ Batiment 712 - Pe 119 91191 GIF Sur YVETTE Cedex Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 ************************************************************************************ -- View this message in context: http://matplotlib.1069221.n5.nabble.com/Altering-Basemap-Colobar-and-Label-positioning-tp43534p43535.html Sent from the matplotlib - users mailing list archive at Nabble.com. |