Ich musste mehrmals eine gefüllte Normalverteilungskurve für Präsentationen, Schulungen und Veröffentlichungen erstellen. So häufig und so wichtig die Normalverteilung auch ist, Sie würden denken, Sie könnten dies leicht als Standardform oder mithilfe einer Internetsuche finden, aber ich hatte nicht viel Glück, das zu finden, was ich brauchte.
JMP bietet einige nützliche Möglichkeiten, um mithilfe von Grafikskripten Linien und geometrische Formen auf Plots zu zeichnen. Wenn ich eine Form will, die so aussieht

Eine Möglichkeit besteht darin, Vektoren mit den Koordinatenpunkten, die ein Polygon definieren, mithilfe der Normalverteilungsfunktion zu erstellen und diese dann im Grafikskript als Argument für die Funktion Polygon () zu verwenden.
Die unten gezeigte Funktion macht genau das und gibt einen ausgewerteten Ausdruck zurück, der in einem Grafikskript verwendet werden kann
func_VNormalShape = Function( // create a polygon that looks like a vertically oriented normal distribution
{_xloc, _yloc, _xscale = 1, _yscale = 1, _range=3, _scaleres=10},
{_VNormShapeX, _VNormShapeY},
// _xloc, _yloc is the "origin" for the normal curve (centered on Yloc, base of curve at xloc)
// _xscale is the scale magnification in the x-axis direction
// _yscale is the scale magnification in the y-axis direction
// range is the +/- range (in standard deviation) to draws the curve over
// scalres is the number of points per _yscale to use for determining the polygon. 10 generally works well, but if range is set to be large
// then scale_res should probably be increased.
// create a vector of y values to use for plotting the shape
_VNormShapeY = ((_yloc - _range * _yscale) :: (_yloc + _range * _yscale) :: (_yscale / _scaleres))`;
// create the filled polygon boundary points
_VNormShapeX = V Concat(
J( _range*2*_scaleres + 1, 1, _xloc ),
_xloc + Sqrt( 2 * Pi() ) * _yscale * _xscale * Normal Density( Sort Descending( _VNormShapeY ), _yloc, _yscale )
);
_VNormShapeY = V Concat(
_VNormShapeY,
Sort Descending( _VNormShapeY )
);
// substitute into the Polygon(function) the two vectorw with the boundary point X and Y values
// and evaluate the function
Eval( Substitute( Expr( Polygon( Expr( shape_x ), Expr( shape_y ) ) ), Expr( shape_x ), _VNormShapeX, Expr( shape_y ), _VNormShapeY ) );
); und dann kann diese Funktion innerhalb der Graph Box () -Funktion wie unten gezeigt verwendet werden (wodurch die oben gezeigte gefüllte Normalkurve erzeugt wird).
_nw = New Window( "Vertical Normal Distribution",
_ob = Outline Box("Gray Vertical Filled Normal Distribution",
_hlb = H List Box(
_gb = Graph Box(
X Scale( 0, 1.1 ),
Y Scale( 1, 8 ),
Xname( "" ),
Yname( "" ),
Fill Color( "gray" );
func_VNormalShape( 0, 4.5, 1, 1, 3.4, 8 );
)
)
)
);
Der gleiche Ansatz könnte auf andere Wahrscheinlichkeitsverteilungen angewendet werden.