Normal probability plot

Create a normal probability plot

Function demo()
	Variable numPts = 100
	Make/o/n=(numPts) data 
	data = 10 + gnoise(1)
	statsNormPlot(data)
End

//==========================================================================================
// The following function produces a normal probability plot equivalent to plotting
// on Gaussian probability paper. based on a modification of statsProbPlot()
Function/S statsNormPlot(inWave)
	Wave inWave
	
	String outWinName=""
	Duplicate/O inWave,tmpWave,xWave
	Sort tmpWave,tmpWave
	Variable num=numpnts(inWave)
	xWave=(p-0.3175)/(num+0.365)
	xWave=StatsInvNormalCDF(xWave,0,1)
	Variable/G V_fitOptions=4
	CurveFit/Q line xWave /X=tmpWave /D
	Wave fit_xWave
	Display/K=1 /W=(5,45,470,405)  xWave vs tmpWave
	outWinName=UniqueName("WM_PROB_PLOT",6,0)
	DoWindow/C $outWinName
	AppendToGraph fit_xWave
	ModifyGraph mode(xWave)=4, lstyle(fit_xWave)=2, rgb(fit_xWave)=(0,0,0)
	TextBox/N=text0/F=0/A=MC/X=-26.90/Y=47.62 "Normal Probability plot"	
	Make/O ticVal = {0.0001, 0.001, 0.003, 0.01, 0.02, 0.05, 0.10, 0.25, 0.50, 0.75, 0.90, 0.95, 0.98, 0.99, 0.997, 0.999, 0.9999}
	Make/O/T ticStr = {"0.0001", "0.001", "0.003", "0.01", "0.02", "0.05", "0.10", "0.25", "0.50", "0.75", "0.90", "0.95", "0.98", "0.99", "0.997", "0.999", "0.9999"}
	Duplicate/O ticVal ticLoc
	ticLoc = StatsInvNormalCDF(ticVal[p],0,1)
	ModifyGraph userticks(left)={ticLoc,ticStr}
	Label bottom "Data Values"
	Label left "Probability"

	return outWinName
End

 

Forum

Support

Gallery

Igor Pro 10

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More