## Re[2]: [PyX-user] scatterplot matrix

 Re[2]: [PyX-user] scatterplot matrix From: Alan G Isaac - 2006-03-14 19:10:43 ```> 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 ```

 [PyX-user] scatterplot matrix From: Alan G Isaac - 2006-03-10 22:41:02 ```Apologies if this proves FAQ. 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) Thank you, Alan Isaac ```
 Re: [PyX-user] scatterplot matrix From: Andre Wobst - 2006-03-14 13:46:23 Attachments: scatter.py ```Hi, 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) A straight forward way would be to just build up some graphs and link the axis between them. See the enclosed example (scatter_linked). However, there seems to be another, quite interesting solution: You can use bar axes (or splitaxes --- those are basically the same) to do a single graph and split it into several pieces. I'm not quite sure how to deal with the internal borders here ... but this is somehow solveable. Anyway, since it's kind of an interesting approach (and I just don't know whether you want to play with it a bit), I've also included a scatter_bar in the enclosed code. HTH, André -- by _ _ _ Dr. André Wobst / \ \ / ) wobsta@..., http://www.wobsta.de/ / _ \ \/\/ / PyX - High quality PostScript and PDF figures (_/ \_)_/\_/ with Python & TeX: visit http://pyx.sourceforge.net/ ```
 Re[2]: [PyX-user] scatterplot matrix From: Alan G Isaac - 2006-03-14 19:10:43 ```> 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 ```