Got it now. Sorry about the confusion...by working for me I meant that set of commands ran and made the standard colorbar.
I just installed ipython (Ubuntu OS). Will try the interactive way as well. All very new. I've used PGPLOT for ~15 years. Thanks again. Mike --- On Wed, 1/5/11, Paul Ivanov <pivanov...@gmail.com> wrote: > From: Paul Ivanov <pivanov...@gmail.com> > Subject: Re: [Matplotlib-users] defining a custom RGB colormap > To: matplotlib-users@lists.sourceforge.net > Date: Wednesday, January 5, 2011, 7:15 PM > Michael Rawlins, on 2011-01-05 > 14:42, wrote: > > Thanks for the detailed tutorial. I'm getting errors > when I > > attempt to use plt.subplots(1,1) and the newcm > assignment. > > > > Traceback (most recent call last): > > File "colorbar_Mytest2.py", line 17, > in <module> > > f, ax = plt.subplots(1,1) > > AttributeError: 'module' object has no attribute > 'subplots' > > Ah, you must be using an older version of matplotlib - > subplots > is a (recently added) convenience shortcut for: > > f = plt.figure() > ax = plt.subplot(1,1,1) > > It comes in handy when you're making lots of subplots by > letting > you do it with one call, instead of doing that one by one > (as I > have rewritten below, so you could run without having to > upgrade > your matplotlib. > > > Also, what does In and Out do, as in Out[68]: > 0.34999? > > That's just the prompts from IPython - I *highly* recommend > using > IPython in place of the default python shell for > interactive usage. > In[10] is what I typed, Out[10] is the result of my > command at > In[10]. > > > Here are just a few of the errors I'm getting when > executing > > colorbar command with newcm. > > > Here's a simplified version that works for me: > > ouch! this code doesn't do quite what you want > > > from pylab import * > > Try to avoid doing this - because you will get unintended > consequences such as the one on the following line. > > > vals = norm(np.linspace(14,40,1000)) > > This was meant to go *after* you initialize the 'norm' > variable > with norm = mpl.colors.Normalize(...). That's the norm I > meant to be using. But because of the "from pylab import *" > line, > the norm function from numpy was imported - which is what > was being > used on that line as written in your code. > > so the vals= line is equivalent to > > vals = numpy.norm(np.linspace(14,40,1000)) > > which meant vals got assigned the value 886.25397758173483, > and > not at all what we wanted. We wanted it to get an array of > 1000 > numbers: > > vals = mpl.colors.Normalize(vmin=0, > vmax=40)(np.linspace(14,40,1000)) > > That's where your trouble with newcm were coming from. > Here's the > complete example again, I've renamed the 'norm' variable > to > 'rawlins_norm' for clarity. > > import matplotlib as mpl > import matplotlib.pyplot as plt > from matplotlib import cm > import numpy as np > > # Make a figure and axes with dimensions as desired. > fig = plt.figure(figsize=(8,3)) > ax1 = plt.subplot(2,1,1) > ax2 = plt.subplot(2,1,2) > > # Set the colormap and norm to correspond to the data for > which > # the colorbar will be used. > rawlins_norm = mpl.colors.Normalize(vmin=0, > vmax=40) # here set colorbar min/max > # the right place for vals > vals = rawlins_norm(np.linspace(14,40,1000)) > newcm = cm.colors.ListedColormap(cm.hot_r(vals)) > > cb1 = mpl.colorbar.ColorbarBase(ax1, cmap=cm.hot_r, > > > norm=rawlins_norm, > > > orientation='horizontal') > > cb1.set_label('"percent"') > cb2 = mpl.colorbar.ColorbarBase(ax2, cmap=newcm, > > > orientation='horizontal') > > cb2.set_label("colormap interval 0.0-1.0") > plt.subplots_adjust(hspace=.7, bottom=.2) > > #comment out the next line to see the original (0-40 > colormap) > ax1.set_xlim(rawlins_norm((14,40))) > plt.show() > > > best, > -- > Paul Ivanov > 314 address only used for lists, off-list direct > email at: > http://pirsquared.org | GPG/PGP key id: 0x0F3E28F7 > > -----Inline Attachment Follows----- > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node > allows customers > to consolidate database storage, standardize their database > environment, and, > should the need arise, upgrade to a full multi-node Oracle > RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > -----Inline Attachment Follows----- > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users