> On 10.03.06, Alan G Isaac wrote: 
>> Has anyone implemented a nice SCATTERPLOT MATRIX? 
>> Examples: 

>> - http://www.math.sfu.ca/~cschwarz/Stat-301/Handouts/node43.html 
>>   (Tab down once for an pretty good example.  Axis labeling 
>>   would ideally alternate however.) 
>> - http://www.ncss.com/scatmatrix.html 
>>   (Go about half way down; note that including regression 
>>   lines is a nice option) 
>> - 
>> http://www.itl.nist.gov/div898/software/dataplot/refman1/auxillar/scatplma.htm
>>  
>>   (Go to the very bottom; this one does the labeling better) 
>> - http://www.mrc-bsu.cam.ac.uk/bugs/documentation/coda03/node34.html 
>>   (Interesting approach; I'm uncertain about it however) 

On Tue, 14 Mar 2006, Andre Wobst apparently wrote: 
> A straight forward way would be to just build up some graphs and link 
> the axis between them. See the enclosed example (scatter_linked). 

OK, here's a first pass based on that. 
(Needs aesthetic improvement but functions.) 
Thanks, 
Alan 

def scatter_plot_matrix(group,figwidth=18,hsep=1,vsep=1): 
    g_len = len(group) 
    subplot_size = (figwidth - (g_len-1)*hsep)/g_len 
    c = canvas.canvas() 
    g_id = range(g_len) 
    xlinks = [] 
    for yi in g_id[::-1]: 
        for xi in g_id: 
            xseries = group[xi] 
            yseries = group[yi] 
            if xi == 0: 
                ylinkaxis = None 
            else: 
                ylinkaxis = graph.axis.linkedaxis(ylink.axes["y"]) 
            if yi == g_len-1: 
                xlinkaxis = None 
            else: 
                xlinkaxis = graph.axis.linkedaxis(xlinks[xi].axes["x"]) 
            newgraph = c.insert(graph.graphxy(width=subplot_size, 
height=subplot_size, 
                                              xpos=(subplot_size+hsep)*xi, 
                                              
ypos=(subplot_size+vsep)*(g_len-1-yi), 
                                              x = (xlinkaxis or 
graph.axis.linear()), 
                                              y = (ylinkaxis or 
graph.axis.linear()), 
                                              ) 
                                ) 
            newgraph.plot(graph.data.list(zip(xseries,yseries), x=1, y=2)) 
            if xi == 0: 
                ylink = newgraph 
            if yi == g_len -1: 
                xlinks.append( newgraph ) 
    return c 





-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
PyX-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyx-user

Reply via email to