Consenti intervalli nel generatore di graficiCiao,
Quando si modificano le impostazioni dell'asse X in un grafico, è possibile utilizzare gli intervalli consentiti e selezionare i valori in base al set di dati (in uno script)? O può essere solo manualmente?
Sto cercando di produrre un grafico con intervalli codificati a colori (che sono scelti dal set di dati), come un grafico di controllo ma sull'asse x.
Fra Giulia
Re: Consenti intervalli nel generatore di graficiDi seguito è riportato il codice che ho usato per aggiungere nel valore dell'intervallo
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: Consenti intervalli nel generatore di graficiCiao @JulieSAppel ,
Dovresti essere in grado di sostituire il numero effettivo, ad esempio 119.84 con qualcosa come Eval(Col Min(:Column)) e il massimo con qualcosa come Eval(Col Max(:Column2)).
Ho fatto un rapido test su una delle mie tabelle di dati e funziona. Se la colonna è "limite inferiore", potresti dover fare qualcosa del genere
Eval(Col Min(:Name("limite inferiore"))). Potrebbe essere necessario regolare i tick nel codice JSL per creare un grafico più accattivante, ma penso che un approccio come questo potrebbe funzionare.
sono sicuro @txnelson dovrebbe essere in grado di confermare se il mio approccio è valido.
Spero che sia di aiuto!,
ds
Re: Consenti intervalli nel generatore di graficiIn realtà i miei intervalli differiranno da set di dati a set di dati, quindi sto cercando di capire come aggiungere gli intervalli nel grafico in base ai limiti nel set di dati e non a un set di intervalli. Quindi, in pratica, nel codice in cui si dice:
<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>Puoi avere riferimenti a punti dati specifici invece di numeri effettivi (es: dt(:limite inferiore, :limite superiore) invece di<SPAN class="token number"> 119.84</SPAN><SPAN class="token punctuation"> ,</SPAN><SPAN class="token number"> 130</SPAN> )?
Re: Consenti intervalli nel generatore di graficiIl modo più semplice per scoprire quale JSL aggiunge un'opzione come "Allow Ranges" è eseguire il grafico in modo interattivo, aggiungendo l'opzione desiderata (Allow Ranges) e quindi salvare lo script dal grafico.Ecco un grafico con gli intervalli consentiti

ed ecco lo script generato dal grafico
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 )}
)
)
);
Ed ecco una modifica a quello script in un modulo con cui è più facile lavorare a livello di programmazione
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>