
Scatter Plot Matrix

RGerkin
// May be easier to append manually and then use TileAxes. Function ScatterPlotMatrix(m[,left,right,low,high,xLog,yLog,labels,xMargin,yMargin,grout]) wave m // Matrix to plot. variable left,right // Left and right values for x-axes. variable low,high // Low and high values for y-axes. variable xLog,yLog // Set x and/or y axes to log scale. string labels // Labels for axes. variable xMargin,yMargin // Margins (as a fraction of graph size) for the axes closests to the edge of the graph window. Between 0 and 1. variable grout // Grout as a fraction of the graph window size. xMargin=paramisdefault(xMargin) ? 0.02 : xMargin yMargin=paramisdefault(yMargin) ? 0.02 : yMargin grout=paramisdefault(grout) ? 0.02 : grout display /k=1 doupdate string win=winname(0,1) variable i,j,numwaves=dimsize(m,1) for(i=0;i<numwaves;i+=1) string xAxis sprintf xAxis,"x_%d",i for(j=0;j<numwaves;j+=1) string yAxis sprintf yAxis,"y_%d",j appendtograph /L=$yaxis /B=$xAxis m[][j] vs m[][i] if(!paramisdefault(low) && !paramisdefault(high)) setAxis /w=$win $yAxis low,high endif if(paramisdefault(labels)) string y_label=getdimlabel(m,1,j) else y_label=stringfromlist(j,labels) endif label /w=$win $yAxis y_label variable yLow=yMargin+j/numWaves*(1-yMargin)//1-(row+1)/rows+yMargin variable yHigh=yMargin+((j+1)/numWaves-grout)*(1-yMargin)//1-row/rows-grout modifygraph /w=$win axisEnab($yAxis)={yLow,yHigh},freepos($yAxis)={xMargin,kwFraction},log($yAxis)=yLog endfor if(!paramisdefault(left) && !paramisdefault(right)) setAxis /w=$win $xAxis left,right endif if(paramisdefault(labels)) string x_label=getdimlabel(m,1,i) else x_label=stringfromlist(i,labels) endif label /w=$win $xAxis x_label variable xLow=xMargin+i/numWaves*(1-xMargin) variable xHigh=xMargin+((i+1)/numWaves-grout)*(1-xMargin) modifygraph /w=$win axisEnab($xAxis)={xLow,xHigh},freepos($xAxis)={yMargin,kwFraction},log($xAxis)=xLog endfor modifygraph /w=$win axOffset=-4,axOffset=-1,btLen=1,lblpos=100 End

Forum

Support

Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More
, apart from the fact that SPM_FreeAxisPlotMatrix works from several 1D waves (which one could concatenate)?
May 30, 2011 at 07:21 pm - Permalink