Re: [Matplotlib-users] Altering Basemap Colobar and Label positioning

2014-06-16 Thread ChaoYue
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-node+s1069221n43534...@n5.nabble.com 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,

 #fd,

 #d4,

 #bc,

 #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 

Re: [Matplotlib-users] modifying a plot from an imported module

2014-06-16 Thread Mike Kaufman
Hi.

The short answer is yes.

orion:~ % cat A.py

from matplotlib.pyplot import *

print A
plot([0,1],[0,1])
draw()
orion:~ % cat B.py

from matplotlib.pyplot import *

import A

print B
plot([0.5,0.75],[0,1])
draw()
show()

Using ipython:

In [2]: run -i B.py
A
B

and the figure shows both plots.

M

On 6/16/14, 12:12 PM, felix_werner wrote:
 Hello,

 I am plotting something in a file A.py

 In another file (B.py), I wish to do
import A
 and then add a curve to that same plot (and replot it).

 Is that possible?

 Thanks!



 --
 View this message in context: 
 http://matplotlib.1069221.n5.nabble.com/modifying-a-plot-from-an-imported-module-tp43533.html
 Sent from the matplotlib - users mailing list archive at Nabble.com.

 --
 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
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users



--
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
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users