Sono alle prime armi con la creazione di script e ho difficoltà a crearne uno che etichetti i picchi e le valli nei dati.
L'obiettivo è etichettare effettivamente tutte le valli dopo il rilevamento del primo picco. Sto cercando di semplificare il processo creando uno script che rappresenti graficamente i dati ed etichetti tutti i picchi e le valli per consentire al mio team di analizzarli più facilmente. Ho provato a seguire le istruzioni precedenti, ma a quanto pare non riesco proprio a farlo funzionare.
Ho provato a valutare tutte le soluzioni esistenti, ma ho avuto difficoltà a implementare una soluzione che funzionasse per me.
I tuoi dati sembrano essere di tipo carattere, il che richiede almeno di modificarli in numerici/continui. Potresti usare i tuoi dati, creare un grafico e contrassegnare ciò che ti interessa trovare/rilevare? Di solito puoi trovare picchi/valli usando una combinazione di Lag/Dif e magari qualche istruzione if.

dt = Open( "$DESKTOP/Sample.jmp" );
max_value = Col Massimo(Colonna(dt, "Calore"));
righe_totali = N Riga(dt);
Time_col = Column(dt, "Calore");
numero_riga = 0;
Per(i = righe_totali, i >= 1, i--,
Se(Time_col[i] == valore_massimo,
numero_riga = i;
Rottura();
)
);
max_time = :Time[row_num];
col_data = Column(dt, "Calore") << Ottieni valori;
min_data = col_data[row_num::total_rows];
valore_min = Minimo(dati_min);
posizioni_min = loc min(dati_min);
min_time_col = min_positions + (row_num - 1);
min_time = :Tempo[min_time_col];
Generatore di grafici (
Dimensioni (1032, 646),
Mostra pannello di controllo (0),
Adatta alla finestra ("Off"),
Variabili (X( :Tempo ), Y( :Calore ) ),
Elementi (Linea (X, Y, Legenda (14))),
Invia a rapporto (
Dispatch( {}, "Tempo", ScaleBox,
{Formato( "Migliore", 12 ), Min( 1.88 ), Max( 5.07800951567129 ), Inc( 0.5 ),
Tick minori (4), Aggiungi linea di riferimento (
tempo_massimo,
"Punteggiato",
"Nero",
Char(tempo_massimo),
2,
1,
Impostazioni etichetta ( {Colore etichetta ( "Rosso" )} )
), Aggiungi riga di riferimento (
il mio_tempo,
"Punteggiato",
"Nero",
Char(mio_tempo),
2,
1,
Impostazioni etichetta ( {Colore etichetta ( "Rosso" )} )
)}
),
Dispatch( {}, "Calore", ScaleBox,
{Aggiungi riga di riferimento(
valore_massimo,
"Punteggiato",
"Nero",
Char(valore_massimo),
2,
1,
Impostazioni etichetta ( {Colore etichetta ( "Rosso" )} )
), Aggiungi riga di riferimento (
valore minimo,
"Punteggiato",
"Nero",
Char(valore_minimo),
2,
1,
Impostazioni etichetta ( {Colore etichetta ( "Rosso" )} )
)}
)
)
);
C'è qualcosa che non è stato fatto in quella sceneggiatura?
Grazie per aver dedicato del tempo a condividere questo codice! Ho un problema: quando eseguo lo stesso script, il grafico generato è molto diverso. Cosa sto sbagliando?
Se si utilizza la tabella di esempio fornita, non funzionerà a meno che non si correggano i tipi di dati delle colonne in numerici e i tipi di modellazione in continui. Immagino che non sia stata eseguita la conversione del tipo di modellazione.
Grazie, dopo aver aggiornato tutto il grafico mostra una linea media per le statistiche di riepilogo. Ora mostra il picco e la valle, quindi cercherò di capire come far sì che la linea mostri i dati effettivi.
Ho fatto funzionare tutto, l'ho accettato come soluzione. Tuttavia, quando provo a usare il generatore di grafici, continua a visualizzare la linea come media. Presumo che qualcosa nello script stia causando questo problema. Qualcuno può aiutarmi a risolvere questo problema?
Utilizzerà la linea media perché ci sono più misurazioni che avvengono esattamente nello stesso momento.
Modifica: assicurati che i tuoi dati siano ordinati correttamente e poi usa l'ordine delle righe

In questo modo non dovrebbe utilizzare statistiche riepilogative e ordinerà i dati sull'asse x in base all'ordine delle righe della tabella
Grazie, la soluzione è stata quella di etichettare tutte le colonne di dati come numeriche e continue. Grazie a tutti per la pazienza nell'aiutarmi.