Ciao,
Ho un compito per scrivere alcune visualizzazioni come script di tabella.Normalmente questo è semplice. La parte approssimativa sono le linee di riferimento che devono fare riferimento ad altre fonti quando lo script è in esecuzione.Dato che i riferimenti sono contenuti in due funzioni che normalmente non accettano variabili dall'esterno, scoprire come utilizzare le manipolazioni delle espressioni per inserire questi valori è qualcosa che attualmente va oltre il mio livello di abilità. Ci sono molti ostacoli da superare.
- Funzioni che non accettano bene le variabili esterne
- var1 = 1;
var2 = 2;
Dt << Nuovo script( “esempio”, print( var1 + var2 ) ); - Si noti che le variabili sono definite fuori dallo script della tabella. Questo è un requisito, poiché i numeri saranno referenziati da una tabella di dati.
- Spedizione()
- Per i valori all'interno di questo, devono essere valori statici, dichiarati chiaramente
- Lavorare con espressioni che non contengono funzioni
- esempio = expr( Nuovo Script() );
titolo = "prova";
insert into( esempio, titolo ); // mostra(esempio) = Nuovo script( “test” )
// In seguito, quando si inseriscono colonne nell'asse x, come nella riga 22 dell'esempio...
x_vuoto = espr( X() );
x_cols = { :col1, :col2 };
insert into( x_empty, x_cols[1] ); // errori, JMP non sa cosa sia X() - Questo mi dice che in qualche modo X() deve essere non valutato, ma consente comunque l'inserimento di elementi, che è ciò che dovrebbero fare nomi come expr() ed expr(), ma in questo caso non funzionano
Lo script di esempio contiene un esempio semplificato di ciò che voglio realizzare. I titoli ei numeri nella tabella appena generata devono essere inseriti nello script della tabella, prima che la funzione venga eseguita per essere inserita in Big Class. Ho un esempio di base di questo in fondo allo script.
Names default to here(1);
clear log();
// Reference table
// Used to populate data in table script below for dt( big )
dt = New Table( "Example",
Add Rows(2),
New Column( "Growth Label", Character, Nominal, Set Values( { "Tall", "Short" } ) ),
New Column( "Height tag", Numeric, Continuous, Set Values( { 67.5, 60 } ) ),
);
// Example table
big = open( "$SAMPLE_DATA/Big Class.jmp" );
// Plain example - vis added as table script * works *
big << New Script( "Example",
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Fit to Window,
Set α Level( 0.05 ),
Variables( X( :weight ), X( :age ), Y( :height ), Color( :sex ) ),
Elements( Points( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( 67.5, "Dashed", "Medium Dark Green", "Tall", 1 ),
Add Ref Line( 60, "Dashed", "Medium Dark Red", "Short", 1 )}
)
)
)
);
// Needed info for below
vis_x = { :weight, :age };
vis_y = { :height };
// Modified example - vis added as table script * not working *
big << New Script( "Example",
Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Fit to Window,
Set α Level( 0.05 ),
Variables( X( vis_x[1] ), X( vis_x[1] ), Y( vis_y[1] ), Color( :sex ) ),
Elements( Points( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"height",
ScaleBox,
{Add Ref Line( big:Height tag[1], "Dashed", "Medium Dark Green", big:Growth Label[1], 1 ),
Add Ref Line( big:Height tag[2], "Dashed", "Medium Dark Red", big:Growth Label[2], 1 )}
)
)
)
);
// Example: expression manipulations
var1 = 10; // represents some reference number, from somewhere
var2 = 1; // represents some reference number, from somewhere
expr_test = eval expr( expr(var1) + expr(var2) );
expr_begin = expr( New Script( "Var replacement" ) );
insert into( expr_begin, name expr( expr_test ) );
show( expr_begin );
eval( eval expr( big << expr( name expr( expr_begin ) ) ) ); // Script contains: 10 + 1
/* Notice how the table script "Var replacement" in big doesn't contain var1 & var2,
it contains the values they represent. This is what I want to do. */
close( dt, "No Save" );La ricerca di "linee di riferimento" produce parecchi risultati nei forum della comunità. L'esempio più vicino che ho trovato, finora, sono i link qui sotto.
https://community.jmp.com/t5/Discussions/Is-there-a-way-to-automatically-draw-ref-lines-at-the-peak-of/mp/87721/highlight/false#M38710
https://community.jmp.com/t5/Discussions/Fill-color-for-multiple-reference-lines/mp/273205