hmmm... in response to John's earlier request I cobbled a simple example 
but that seems to work; either there's a strange error in the more 
complex version or my misunderstanding of color maps is messing with me. 
Anyway, for the record, here's an example of what I want to do (that 
actually seems to work)

------------------------------------------------------------------------------------

#!/usr/bin/env python

# Example to try and use same color maps for scatter and imshow

import numpy as np
from pylab import *

# size of array dimensions
size = 10

# cluster centers
acenter1 = 3.0
asigma1 = 1.0
bcenter1 = 6.0
bsigma1 = 0.5

acenter2 = 8.0
asigma2 = 2.0
bcenter2 = 3.0
bsigma2 = 1.0

acenter3 = 13.0
asigma3 = 2.0
bcenter3 = 10.0
bsigma3 = 1.0

# populate arrays with random values distrubted about 2 locations
# (i.e. 2 clusters)

a = np.zeros([size,size],float)
b = np.zeros([size,size],float)
c = np.zeros([size,size],int)

# populate arrays
for i in range(size):
    for j in range(size):
        switcher = np.random.randint(3)
        if switcher == 0: # cluster 1
            a[i,j] = np.random.normal(acenter1,asigma1)
            b[i,j] = np.random.normal(bcenter1,bsigma1)
            c[i,j] = 0
        elif switcher == 1 : # cluster 2
            a[i,j] = np.random.normal(acenter2,asigma2)
            b[i,j] = np.random.normal(bcenter2,bsigma2)
            c[i,j] = 1
        else:
           a[i,j] = np.random.normal(acenter3,asigma3)
           b[i,j] = np.random.normal(bcenter3,bsigma3)
           c[i,j] = 2

hot()
subplot(1,2,1)
scatter(np.ravel(a),np.ravel(b),c=np.ravel(c))
subplot(1,2,2)
imshow(c)

show()


------------------------------------------------------------------------------------


> Young, Karl wrote:
>   
>> Thanks for the tip and sorry I didn't include a complete code
>> snippet; the current code involves images (scipy.ndimage) and
>> clustering code and I thought that was a little too much too include;
>> I'll try to extract something simpler. I guess the main question is
>> how to use a set of integers to index a color space consistently for
>> both scatter and imshow but I'll try to come up with a simple
>> example. Thanks agan.
>>
>>     
>
> Karl,
>
> It sounds like you need to specify the norm=colors.NoNorm() argument.
> http://matplotlib.sourceforge.net/api/colors_api.html?highlight=nonorm#matplotlib.colors.NoNorm
>    Then if your data are integers (typed as integers, not just taking 
> integer values), they will be interpreted as indices into the color 
> table.  You will probably also want to generate that table yourself and 
> specify it via the cmap=my_cmap kwarg.  If you have only a few values, 
> then you may want to generate it as a colors.ListedColormap:
> http://matplotlib.sourceforge.net/api/colors_api.html?highlight=listedcolormap#matplotlib.colors.ListedColormap
> http://matplotlib.sourceforge.net/examples/api/colorbar_only.html?highlight=listedcolormap
>
> It looks like we don't have any good examples sitting around showing the 
> use of NoNorm; but try it anyway.
>
> Eric
>
> .
>
>   


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to