Aide à l'extraction de données pour le réglage de la limite d'axe dynamiqueBonjour,
J'essaie de déterminer les limites de l'axe sur un graphique en fonction des données actuelles tracées afin que toutes les lignes de référence et les points de données soient visibles après les entrées de l'utilisateur.
La limite d'axe définie sera soit la valeur de la ligne de référence USL / LSL, soit le point de données le plus haut / le plus bas tracé. Le graphique utilisé dans un tableau de variabilité et les données sont les valeurs de la colonne 2 regroupées par la colonne 1.
Au départ, je pensais pouvoir le faire en déterminant le min/max des deux valeurs où la référence aux données était déterminée par la fonction Col Minimum avec l'argument
Var1_Min = Eval( Min((LSL[1]*0.95), Col Minimum( :Column 2, :Column 1["Group1"] )));
J'ai passé beaucoup de temps à chercher et je n'arrive pas à trouver une fonction qui fait ce dont j'ai besoin - des idées ?
GraphiqueScriptRe : Aide à l'extraction de données pour le réglage de la limite d'axe dynamiqueMerci pour ta réponse Jim!
Malheureusement, je n'ai pas de limite de spécification unique pour ma colonne car il existe une distinction entre les valeurs basées sur une autre colonne, donc je n'ai pas encore trouvé de moyen de définir des limites de spécification de colonne traditionnelles sans diviser complètement mes données en deux tables.
J'ai finalement pu trouver la solution à mon problème en utilisant Get Rows Where :
<BR />dt = Current Data Table();
G1 = dt << Get Rows Where (:Column 1 == "Group1");
G1_Min = Eval( Min((LSL[1]*0.95), Min(:Column 2[G1])));
G1_Max = Eval( Max((USL[1]*1.05), Max(:Column 2[G1])));<BR />dt << clear select;
<BR />dt = Current Data Table();
G2 = dt << Get Rows Where (:Column 1 == "Group2");
G2_Min = Eval( Min((LSL[2]*0.95), Min(:Column 2[G2])));
G2_Max = Eval( Max((USL[2]*1.05), Max(:Column 2[G2])));<BR />dt << clear select;
Ensuite, pour tracer un graphique dans la section dispatch (pour le premier graphique, le second est dupliqué avec 1-> 2):
Dispatch ({Min(G1_Min), Max(G1_Max), Inc( Eval((G1_Max - G1_Min) / 7))),
Add Ref Line( LSL[1], "Solid", "Medium Dark Blue", "LSL", 1 ),
Add Ref Line( USL[1], "Solid", "Medium Dark Blue", "USL", 1 )}* Notez que j'ai oublié de mentionner dans ma question initiale que les USL/LSL sont déjà définis dans une liste et utilisés pour les lignes de référence.
Re : Aide à l'extraction de données pour le réglage de la limite d'axe dynamiqueSi vos limites de spécification sont enregistrées en tant que propriétés de colonne et que vous avez indiqué "Afficher les limites", Graph Builder étendra automatiquement la plage des axes pour inclure l'USL et la LSL.

Cependant, vous pouvez facilement remplacer les valeurs d'axe, comme indiqué ci-dessous, où la valeur maximale de l'axe X est remplacée par l'USL plus 10 % de la plage d'USL-LSL.

Voici le script simple
names default to here(1);
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "\Example.jmp" );
// Change column property: NPN1
Data Table( "Example" ):NPN1 << Set Property(
"Spec Limits",
{LSL( 104.41 ), USL( 131.89 ), Target( 118.15 ), Show Limits( 1 )}
);
// Change column property: NPN2
Data Table( "Example" ):NPN2 << Set Property(
"Spec Limits",
{LSL( 96.59 ), USL( 130.9 ), Target( 113.75 ), Show Limits( 1 )}
);
// Report snapshot: semiconductor capability - Graph Builder
gb = Data Table( "Example" ) <<
Graph Builder(
Variables( X( :NPN2 ), Y( :NPN1 ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
// Set Maximum Y axis value to be displayed
specs = dt:NPN1 << get property( "Spec Limits" );
maxY = Max( Col Maximum( :NPN1 ), specs["USL"] + .1 * (specs["USL"] - specs["LSL"]) );
Report( gb )[AxisBox( 2 )] << Max( maxY );