Seleziona problemaCreo un grafico e quando vado a selezionarne una porzione, viene evidenziato l'intero foglio Excel. Ricordo dalla demo che dovresti essere in grado di selezionare un segmento e fare in modo che evidenzi solo i dati direttamente relativi a quel segmento. Cosa sto facendo di sbagliato qui?
Vorrei anche sapere se esiste un modo per far sì che JMP trovi i dati di picco da più punti sulla stessa linea e li visualizzi nel grafico?
Grazie per il tuo tempo
Ri: Selezionare il problemaProvando un approccio leggermente diverso, mi sono sbarazzato della parte dello script che regola la dimensione e l'aspetto dei punti e per ora ho semplicemente modificato quelle impostazioni nelle mie preferenze, mi sono reso conto che lo script che avevo prima non stava effettivamente inserendo il punta ai grafici aggiuntivi (più del primo), quindi ho ideato questo. Tuttavia sta facendo una cosa piuttosto bizzarra in cui traccia un secondo grafico della prima riga completamente da solo in modo fluido...
dt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
elements_txt = elements_txt ||
"Legend( 7 ) ),
Points( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
elements_txt = elements_txt ||
"Legend(8))
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[14]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[15]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);
Ho salvato lo script per questo, e poi lo script per come voglio che appaia (solo il grafico in alto) ma non sono sicuro di quali parti devo modificare per eliminare il grafico errato...
//This is what it graphs
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Name( "Time[sec]" ) ),
Y( :Name( "CH2-Chemical Cal" ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH2-Chemical Cal" ) )
),
Elements(
Position( 1, 1 ),
Line( X, Y( 1 ), Y( 2 ), Legend( 7 ) ),
Points( X, Y( 1 ), Y( 2 ), Legend( 8 ) )
),
Elements(
Position( 1, 2 ),
Points( X, Y, Legend( 11 ) ),
Smoother( X, Y, Legend( 12 ) )
),
SendToReport(
Dispatch(
{},
"CH2-Chemical Cal",
ScaleBox( 2 ),
{Min( -125.45871559633 ), Max( 1724.54128440367 ), Inc( 100 ),
Minor Ticks( 1 )}
)
)
);
// This is what I want it to graph
Graph Builder(
Show Control Panel( 0 ),
Variables(
X( :Name( "Time[sec]" ) ),
Y( :Name( "CH2-Chemical Cal" ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) ),
Y( :Name( "CH4-Chemical Cal" ), Position( 1 ) )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Legend( 7 ) ),
Points( X, Y( 1 ), Y( 2 ), Legend( 8 ) )
)
);Ri: Selezionare il problemaAbbastanza giusto, non sto davvero cercando qualcuno che si impegni molto, se si arriva a questo dovrei chiamarla commissione, spero solo che qualcuno possa avere qualche suggerimento su cosa posso provare o magari indicare nella giusta direzione, sono in fondo con un paio di floaties e stanno perdendo aria XD
Ri: Selezionare il problemaMi dispiace, ma non ho il tempo di dedicare tempo al debug e quindi all'implementazione del nuovo codice in un pezzo di codice che sta diventando grande quanto il tuo script. Ti auguro buona fortuna nel trovare qualcuno nella comunità che ti aiuti.Ri: Selezionare il problemaSembra fantastico, quindi qui sta il problema, non so come farlo XD. Lo script è molto più avanzato di me, sto solo cercando di dargli una forma per fare ciò di cui ho bisogno, funziona così com'è (voglio dire che posso farlo funzionare, non fa quello che mi serve) ma Mi piacerebbe un po' di vestibilità e di rifinitura, per così dire. Sto scavando nella letteratura come meglio posso e cercando di risolvere i problemi, ma in realtà non conosco ancora il gergo. Quindi attualmente il numero di canali viene selezionato dalla casella popup (nel pedice) sapendo che, c'è un modo per dire alla legenda quante righe ho selezionato per modificare solo quel numero di righe? Presumibilmente questo è ciò che fa la funzione variabile nel resto dello script perché non ha problemi con più righe/canali ecc... L'unico motivo per cui sto cercando di aggiungere questa parte è perché con il grafico a linee non è possibile selezionare un segmento per tracciare i dati correlati. Devo riuscire a trovare il picco di una linea. Mi piacerebbe anche che JMP includesse anche questi dati nel grafico, ma presumo che sarà ancora più difficile di così, dal momento che sto chiedendo allo script di selezionare non solo diversi punti specifici nei dati, ma lì potrebbe essercene più di uno in una riga e me ne serve uno specifico, non solo il primo o quello più alto. Così com'è posso semplicemente usare la singola riga per i dati più importanti ed eseguirli uno alla volta, il che è un grande progresso, potrei anche arrivare al punto di salvare più script e averne semplicemente uno per ogni numero di righe di cui ho bisogno tramare, ma sono sicuro che ci sia un modo migliore, semplicemente non so come realizzarlo... ancora ^.^
Ri: Selezionare il problemafondamentalmente il tuo JSL sta semplicemente creando un nuovo JSL. E quando si tratta della sezione SendToReport, hai cablato il codice per richiedere 3 offset_cols. Questo lo sai già, ma il punto che sto sottolineando è che stai generando codice JSL che alla fine esegui. Quindi quello che devi fare è scomporre il codice, in modo da controllare quanti elementi sono presenti nell'elenco offset_cols e quindi, in base a ciò, generare il codice JSL solo per quel numero di elementi.Ri: Selezionare il problemadt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
// add in the marker and transparency code
elements_txt = elements_txt ||
"Legend( 7 ) ), Points( X, Y, Legend(8))),
SendToReport(
Dispatch(
{},
\!"400\!",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( \!""
|| offset_cols[1] || "\!", 1 ), Item ID( \!""
|| offset_cols[2] || "\!", 1 ), Item ID( \!""
|| offset_cols[3] || "\!", 1 ) )
)}
)
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[5]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[6]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[7]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
if (cb9 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch9_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);Quindi questo mi consente di gestire 3 canali diversi, sfortunatamente non posso gestire meno di 3 canali. Posso eseguirne di più, ma eventuali canali aggiuntivi non avranno il percorso del punto incluso, quindi non posso selezionare punti separati sulla linea come previsto. Se utilizzo meno di 3 canali mi ritrovo con questo avviso

Ri: Selezionare il problemawhoops, ho trovato un singhiozzo, dal momento che l'hai cambiato da variabile a statica, funziona solo sul primo grafico e potrei aver bisogno di tracciare più grafici contemporaneamente (motivo per cui la variabile) ho provato a duplicarlo per ogni possibile colonna, questo funziona, ma solo se utilizzo il numero di grafici che includo e posso usarne meno o più a seconda delle circostanze. Non riesco a far funzionare la variabile per questo aggiustamento, forse c'è un argomento if then che potremmo fornire per le righe aggiuntive in modo che se non le sto tracciando non litigheranno con la sceneggiatura?
Ri: Selezionare il problemaevviva! funziona, si verifica un errore se seleziono un canale al di fuori dell'intervallo che sto cercando, ma va benissimo perché per quanto ne so non lo farò.
Grazie mille!
Ri: Selezionare il problemaHo rielaborato un po' il tuo codice.
1. Ho aggiunto il codice per modificare la dimensione e la trasparenza del marcatore
2. Potresti non aver notato il seguente problema, tuttavia, nelle nuove colonne che stavi creando, le formule contenevano i valori dt e i.Queste sono variabili di memoria che possono eventualmente cambiare.(cioè si salva la tabella, si avvia una sessione JMP in futuro, si apre la tabella dati e le colonne causerebbero un errore, perché le variabili dt e i non sono più disponibili).Quindi ho modificato il codice per fare in modo che le formule avessero valori cablati.
Ecco il codice.Ho creato una tabella dati mockup per testare il codice, quindi forse ci sono ancora alcuni problemi.
dt = Open();
col_list = dt << get column names( string );
Remove From( col_list, 1 ); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = Expr(
For( i = 1, i <= N Items( cols_to_plot ), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
// If used before, delete the column and then recreate it
If( Try( Column( dt, new_name ) << get name, "" ) != "",
dt << delete columns( new_name )
);
Insert Into( offset_cols, new_name );
// The variable i and the column name need to be changed to their
// static value for the column formulas to be correct
Eval(
Substitute(
Expr(
dt << New Column( new_name,
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( __cols_to_plot__ * __offset_list__ )
)
),
Expr( __cols_to_plot__ ), Parse( ":" || cols_to_plot[i] ),
Expr( __offset_list__ ), offset_list[i]
)
);
);
// Now for the graph - build a text string and then execute it
gb_text = "\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
For( i = 1, i <= N Items( cols_to_plot ), i++,
If( i == 1,
// then
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\" )
,
// else
gb_text = gb_text || Eval Insert( "\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\" )
);
elements_txt = elements_txt || Eval Insert( "Y ( ^i^ ), " );
);
// add in the marker and transparency code
elements_txt = elements_txt ||
"Legend( 7 ) ), Points( X, Y, Legend(8))),
SendToReport(
Dispatch(
{},
\!"400\!",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( \!""
|| offset_cols[1] || "\!", 1 ) )
)}
)
)";
gb_text = gb_text || elements_txt || "); ";
Eval( Parse( gb_text ) );
);
nw = New Window( "Graph Chemicals",
Panel Box( "Select channels to graph",
Lineup Box( N Col( 2 ),
Text Box( "Column" ),
Text Box( "Chemical Cal" ),
cb1 = Check Box( "Ch1" ),
ch1_neb = Number Edit Box(),
cb2 = Check Box( "Ch2" ),
ch2_neb = Number Edit Box(),
cb3 = Check Box( "Ch3" ),
ch3_neb = Number Edit Box(),
cb4 = Check Box( "Ch4" ),
ch4_neb = Number Edit Box(),
cb5 = Check Box( "Ch5" ),
ch5_neb = Number Edit Box(),
cb6 = Check Box( "Ch6" ),
ch6_neb = Number Edit Box(),
cb7 = Check Box( "Ch7" ),
ch7_neb = Number Edit Box(),
cb8 = Check Box( "Ch8" ),
ch8_neb = Number Edit Box(),
cb9 = Check Box( "Ch9" ),
ch9_neb = Number Edit Box(),
),
),
Panel Box( "Actions",
H List Box(
okb = Button Box( "OK",
If( cb1 << get( 1 ),
Insert Into( cols_to_plot, col_list[8] );
offset_value = ch1_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb2 << get( 1 ),
Insert Into( cols_to_plot, col_list[9] );
offset_value = ch2_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb3 << get( 1 ),
Insert Into( cols_to_plot, col_list[10] );
offset_value = ch3_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb4 << get( 1 ),
Insert Into( cols_to_plot, col_list[11] );
offset_value = ch4_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb5 << get( 1 ),
Insert Into( cols_to_plot, col_list[12] );
offset_value = ch5_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb6 << get( 1 ),
Insert Into( cols_to_plot, col_list[13] );
offset_value = ch6_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb7 << get( 1 ),
Insert Into( cols_to_plot, col_list[14] );
offset_value = ch7_neb << get;
Insert Into( offset_list, offset_value );
);
If( cb8 << get( 1 ),
Insert Into( cols_to_plot, col_list[15] );
offset_value = ch8_neb << get;
Insert Into( offset_list, offset_value );
);
graph_expr;
nw << close window;
),
canb = Button Box( "Cancel", nw << close window ),
)
),
);
// Pre-check checkboxes if column exists
For( i = 1, i <= N Items( col_list ), i++,
If(
col_list[i] == "Ch1", cb1 << set( 1, 1 ),
col_list[i] == "Ch2", cb2 << set( 1, 1 ),
col_list[i] == "Ch3", cb3 << set( 1, 1 ),
col_list[i] == "Ch4", cb4 << set( 1, 1 ),
col_list[i] == "Ch5", cb5 << set( 1, 1 ),
col_list[i] == "Ch6", cb6 << set( 1, 1 ),
col_list[i] == "Ch7", cb7 << set( 1, 1 ),
col_list[i] == "Ch8", cb8 << set( 1, 1 ),
col_list[i] == "Ch9", cb9 << set( 1, 1 ),
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model( 8, Properties( 0, {Marker Size( 0 )}, Item ID( "CH2-Offset", 1 ) ) )}
)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 ), Transparency( 0 )}, Item ID( "^offset_cols[i]^", 1 ) )
)}
)
)
);Ri: Selezionare il problemaTutto il testo è nel post precedente sotto la finestra dello spoiler, semplicemente non sembra corretto quindi ho usato le immagini, non sapevo a cosa servisse il pulsante JSL quindi ho semplicemente copiato/incollato.
dt = Open ();
col_list = dt << get column names(string);
remove from(col_list, 1); // Remove time[sec] from list
cols_to_plot = {};
offset_list = {};
offset_cols = {};
// Define the graph builder commands in an expression for use by the OK button
graph_expr = expr(
for (i = 1, i <= nitems(cols_to_plot), i++,
new_name = cols_to_plot[i] || "-Chemical Cal";
insertinto(offset_cols, new_name);
dt << new column(new_name, Numeric, "Continuous", Format( "Best", 12 ),
Formula( as column(dt, cols_to_plot[i]) * offset_list[i] ) );
);
// Now for the graph - build a text string and then execute it
gb_text =
"\[gb = graph builder(
show control panel(0),
variables(
X( :Name( "Time[sec]" ) ),]\";
elements_txt = " ),
Elements( Line( X, ";
for (i = 1, i <= nitems(cols_to_plot), i++,
if (i == 1,
// then
gb_text = gb_text || evalinsert("\!N\[ Y( :Name( "^offset_cols[i]^" ) ), ]\");
,
// else
gb_text = gb_text || evalinsert("\!N\[ Y( :Name( "^offset_cols[i]^" ), Position( 1 ) ),]\");
);
elements_txt = elements_txt || evalinsert("Y ( ^i^ ), ");
);
elements_txt = elements_txt || "Legend( 7 ) ), Points( X, Y, Legend(8))
,";
gb_text = gb_text || elements_txt || ") )";
eval(parse(gb_text));
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Marker Size( 0 ), Transparency( 0 )},
Item ID( "^offset_cols[i]^", 1 )
)
)}
)
)
);
nw = new window("Graph Chemicals",
panel box("Select channels to graph",
lineup box(ncol(2),
text box("Column"), text box("Chemical Cal"),
cb1 = checkbox("Ch1"), ch1_neb = number edit box(),
cb2 = checkbox("Ch2"), ch2_neb = number edit box(),
cb3 = checkbox("Ch3"), ch3_neb = number edit box(),
cb4 = checkbox("Ch4"), ch4_neb = number edit box(),
cb5 = checkbox("Ch5"), ch5_neb = number edit box(),
cb6 = checkbox("Ch6"), ch6_neb = number edit box(),
cb7 = checkbox("Ch7"), ch7_neb = number edit box(),
cb8 = checkbox("Ch8"), ch8_neb = number edit box(),
cb9 = checkbox("Ch9"), ch9_neb = number edit box(),
),
),
panelbox("Actions",
hlistbox(
okb = button box("OK",
if (cb1 << get(1),
insertinto(cols_to_plot, col_list[8]);
offset_value = ch1_neb << get;
insertinto(offset_list, offset_value);
);
if (cb2 << get(1),
insertinto(cols_to_plot, col_list[9]);
offset_value = ch2_neb << get;
insertinto(offset_list, offset_value);
);
if (cb3 << get(1),
insertinto(cols_to_plot, col_list[10]);
offset_value = ch3_neb << get;
insertinto(offset_list, offset_value);
);
if (cb4 << get(1),
insertinto(cols_to_plot, col_list[11]);
offset_value = ch4_neb << get;
insertinto(offset_list, offset_value);
);
if (cb5 << get(1),
insertinto(cols_to_plot, col_list[12]);
offset_value = ch5_neb << get;
insertinto(offset_list, offset_value);
);
if (cb6 << get(1),
insertinto(cols_to_plot, col_list[13]);
offset_value = ch6_neb << get;
insertinto(offset_list, offset_value);
);
if (cb7 << get(1),
insertinto(cols_to_plot, col_list[14]);
offset_value = ch7_neb << get;
insertinto(offset_list, offset_value);
);
if (cb8 << get(1),
insertinto(cols_to_plot, col_list[15]);
offset_value = ch8_neb << get;
insertinto(offset_list, offset_value);
);
graph_expr;
nw << close window;
),
canb = button box("Cancel", nw << close window;
),
)
),
);
// Pre-check checkboxes if column exists
for (i = 1, i <= nitems(col_list), i++,
if (col_list[i] == "Ch1", cb1 << set(1, 1),
col_list[i] == "Ch2", cb2 << set(1, 1),
col_list[i] == "Ch3", cb3 << set(1, 1),
col_list[i] == "Ch4", cb4 << set(1, 1),
col_list[i] == "Ch5", cb5 << set(1, 1),
col_list[i] == "Ch6", cb6 << set(1, 1),
col_list[i] == "Ch7", cb7 << set(1, 1),
col_list[i] == "Ch8", cb8 << set(1, 1),
col_list[i] == "Ch9", cb9 << set(1, 1),
);
);Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties( 0, {Marker Size( 0 )}, Item ID( "CH2-Offset", 1 ) )
)}
)
)
);
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "Time[sec]" ) ), Y( :Name( "CH2-Offset" ) ) ),
Elements( Line( X, Y, Legend( 7 ) ), Points( X, Y, Legend( 8 ) ) ),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
8,
Properties(
0,
{Marker Size( 0 ), Transparency( 0 )},
Item ID( "^offset_cols[i]^", 1 )
)
)}
)
)
);Ri: Selezionare il problemaLa tua mancata risposta alla tua ultima domanda è in parte dovuta al modo in cui visualizzi il codice.Passare il codice sotto forma di immagine richiede che la comunità debba digitare manualmente tutto il codice se tenta di eseguire il debug del codice.Potresti inserire il codice utilizzando l'icona "Inserisci codice" o, meglio ancora, l'icona "Inserisci script JSL".Se il tuo browser non supporta nessuno dei due, incollare il codice nella risposta funzionerà.
Ri: Selezionare il problema
Penso che dovrebbe finire qui, ma continuo a farlo

Non sono sicuro di cos'altro provare, ho provato diversi nomi logici diversi ma senza modifiche.
Ri: Selezionare il problemaBellissimo, ora stiamo arrivando a qualcosa, ho difficoltà a inserire il dialogo che emerge nella mia sceneggiatura. Quando apporto questa modifica, lo script appare così

ma ho difficoltà a capire dove e come inserire i modificatori nel mio script di base.

Mi piacerebbe capirlo meglio, ma per il momento la comprensione è meno importante dell'effetto ^.^ (salvato come immagini invece che come testo perché il testo funzionava in modo strano, codice di testo da seguire)
Visualizza altro...
Ri: Selezionare il problemaSe fai clic con il pulsante destro del mouse sui punti nella legenda del grafico, puoi modificare la dimensione e il colore dei punti.Ri: Selezionare il problemaAddendum:
Ok, quindi ho modificato il mio grafico in modo che utilizzi anche i punti. Tuttavia i punti sono enormi e disturbano la mia immagine. C'è un modo per rappresentare graficamente i punti più piccoli o addirittura rappresentarli graficamente ma rimuovere i punti visibili? Non ho bisogno dei punti, mi serve solo la possibilità di selezionare il segmento specifico di una linea che non ti consente di farlo. Grazie per il tuo ulteriore aiuto!

Ri: Selezionare il problemaBene, questo risponde alla domanda, ma presenta un nuovo problema. D'altra parte ora conosco un modo davvero veloce per trovare il valore di picco senza troppi sforzi, tuttavia mi piacerebbe davvero poter selezionare solo il segmento della linea. Il grafico a linee è il modo migliore per rappresentare i dati in questo caso perché è un flusso fluido, raccogliamo punti dati lungo un intervallo di tempo, ma il fluido scorre ancora tra quei punti e anche perché rispecchia il modo in cui viene visualizzato in altri formati, quindi è facile vedere se stai guardando i dati giusti o se i dati sono significativamente al di fuori dei parametri desiderati. Mi chiedo se c'è un modo per visualizzarlo come una linea, ma trattarlo come punti... *riflette* Beh, comunque grazie per l'informazione!
Ri: Selezionare il problemaCiao a tutti,
Selezionando una linea verranno selezionati tutti i punti che compongono quella linea. Dovresti avere punti sulla linea per selezionare solo quella regione della linea.
Spero che aiuti.
Chris
Ri: Selezionare il problemaÈ interessante: a me succede la stessa cosa.Noto anche che lo strumento lazo si trasforma in un rettangolo anziché in un poligono a disegno libero.Ma ciò accade solo se viene scelta l'opzione della linea nel Costruttore di grafici anziché i punti.Immagino che con la linea tracciata per la media di quella variabile, tutti i punti siano evidenziati perché tutti i punti vengono utilizzati per calcolare la media, ma questa è un'ipotesi e sarò interessato a vedere se qualcuno riesce a svelare il mistero.Per quanto riguarda l'altra domanda, puoi utilizzare una combinazione di funzioni ColMax e/o ColRank per ottenere i punti che stai cercando?
Ri: Selezionare il problema
È un grafico abbastanza semplice con solo due righe di dati, dovrebbe essere davvero semplice ma per qualche motivo, come puoi vedere, selezionando solo il picco si evidenzia l'intero foglio di calcolo.
La seconda parte sto cercando più un modo per inserirlo nello script che ho attualmente, se devo cercare i punti dati e selezionarli il punto è già sconfitto, le variabili che so sono la colonna in cui si trova, quella ci sarà sempre uno 0 prima di ogni picco di riferimento e mi interessa solo il punto più alto del picco per ogni occorrenza sulla linea.
Ovviamente darò un'occhiata al libro, ma il tempo non aspetta nessuno e lo scopo di questo progetto è semplificare le attività che già svolgiamo, non è necessario che JMP vada a caccia di valori che abbiamo già in Excel, lo sai ^.^
Ri: Selezionare il problemaDi seguito è riportato un grafico in cui sono stati selezionati alcuni punti e, come si può vedere sia sul grafico che sulla tabella dati, quali punti sono stati selezionati.Tuttavia, dovrai fornire ulteriori informazioni su quale grafico stavi utilizzando e cosa contiene la tabella dati per tentare di determinare quali potrebbero essere i problemi.Suggerisco come primo passo di leggere il libro Essential Graphing fornito con l'installazione di JMP
Aiuto==>Libri==>Grafici essenziali

Per quanto riguarda la tua seconda domanda, sì, potresti determinare i punti selezionati da una linea e visualizzare i loro valori sul grafico.Questo può essere fatto specificando quali colonne devono essere utilizzate per l'etichetta e quindi selezionando i punti dati da visualizzare.Ancora una volta, questo è trattato nel libro Essential Graphing