Autoriser les plages dans le générateur de graphiquesSalut,
Lors de la modification des paramètres de l'axe X dans un graphique, est-il possible d'utiliser les plages autorisées et de sélectionner des valeurs en fonction de l'ensemble de données (dans un script) ? Ou cela ne peut-il être que manuel ?
J'essaie de produire un tracé avec des plages codées par couleur (qui sont choisies dans l'ensemble de données), comme une carte de contrôle mais sur l'axe des abscisses.
Frère Julie
Re : Autoriser les plages dans le générateur de graphiquesCi-dessous se trouve le code que j'ai utilisé pour ajouter la valeur de la plage
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
gb = Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Variables( X( :PNP1 ), Y( :NPN1 ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
Eval(
Substitute(
Expr(
Report( gb )[AxisBox( 1 )] << Add Ref Line( {__LSL__, __USL__}, "Solid", "Black", "", 1, 0.25 )
),
Expr( __LSL__ ), (dt:PNP1 << get property( "spec limits" ))["LSL"],
Expr( __USL__ ), (dt:PNP1 << get property( "spec limits" ))["USL"]
)
);Re : Autoriser les plages dans le générateur de graphiquesSalut @JulieSApel ,
Vous devriez pouvoir remplacer le nombre réel, par exemple 119,84 par quelque chose comme Eval(Col Min(:Column)) et le max par quelque chose comme Eval(Col Max(:Column2)).
J'ai fait un test rapide sur l'une de mes tables de données, et cela fonctionne. Si la colonne est "limite inférieure", vous devrez peut-être faire quelque chose comme
Eval(Col Min(:Nom("limite inférieure"))). Vous devrez peut-être ajuster les ticks dans le code JSL pour créer un graphique plus attrayant, mais je pense qu'une approche comme celle-ci pourrait fonctionner.
Je suis sûr @txnelson devrait être en mesure de confirmer si mon approche est valide.
J'espère que cela t'aides!,
DS
Re : Autoriser les plages dans le générateur de graphiquesEn fait, mes plages différeront d'un ensemble de données à l'autre, j'essaie donc de comprendre comment ajouter les plages du graphique en fonction des limites de l'ensemble de données et non d'un ensemble de plages. Donc, fondamentalement, dans le code où il est dit:
<SPAN class="token function">report</SPAN><SPAN class="token punctuation">(</SPAN>gb<SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">[</SPAN>AxisBox<SPAN class="token punctuation">(</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token operator"><</SPAN><SPAN class="token messages">Add Ref Line</SPAN><SPAN class="token punctuation">(</SPAN> <SPAN class="token punctuation">{</SPAN><SPAN class="token number">119.84</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">130</SPAN><SPAN class="token punctuation">}</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Solid"</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">"Black"</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token string">""</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">1</SPAN><SPAN class="token punctuation">,</SPAN> <SPAN class="token number">0.25</SPAN> <SPAN class="token punctuation">)</SPAN><SPAN class="token punctuation">;</SPAN>Pouvez-vous avoir des références à des points de données spécifiques au lieu de nombres réels (par exemple : dt(:lower limit, :upper limit) au lieu de<SPAN class="token number"> 119,84</SPAN><SPAN class="token punctuation"> ,</SPAN><SPAN class="token number"> 130</SPAN> ) ?
Re : Autoriser les plages dans le générateur de graphiquesLe moyen le plus simple de savoir ce que le JSL pour ajouter une telle option telle que "Allow Ranges" est d'exécuter le graphique de manière interactive, en ajoutant l'option souhaitée (Allow Ranges), puis d'enregistrer le script à partir du graphique.Voici un graphique avec Autoriser les plages

et voici le script généré à partir du graphique
Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Add Ref Line( {119.84, 130}, "Solid", "Black", "", 1, 0.25 )}
)
)
);
Et voici une modification de ce script sous une forme plus facile à utiliser par programmation
gb = Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ));
report(gb)[AxisBox(1)]<<ADD ref="" line=""></ADD>