Je suis nouveau dans la création de scripts et j'ai du mal à en créer un qui étiquette les pics et les vallées des données.
L'objectif est d'étiqueter toutes les vallées après la détection du premier pic. J'essaie de simplifier le processus en créant un script qui représente graphiquement les données et étiquette tous les pics et vallées afin de faciliter l'analyse des données par mon équipe. J'ai essayé de suivre les instructions précédentes, mais je n'y parviens pas.
J'ai essayé d'explorer toutes les solutions existantes pour cela, mais j'ai eu du mal à mettre en œuvre une solution qui me convienne.
Vos données semblent être de type caractère, ce qui nécessite au minimum de les convertir en données numériques/continues. Pourriez-vous utiliser vos données, créer un graphique et indiquer ce que vous souhaitez trouver/détecter ? On peut généralement trouver des pics/vallées en combinant les fonctions Lag/Dif et éventuellement des instructions conditionnelles.

dt = Ouvrir( "$DESKTOP/Sample.jmp" );
max_value = Col Maximum(Colonne(dt, "Chaleur"));
total_rows = N Ligne(dt);
Time_col = Colonne(dt, "Chaleur");
numéro_ligne = 0;
Pour(i = total_lignes, i >= 1, i--,
Si(Time_col[i] == valeur_max,
numéro_ligne = i;
Casser();
)
);
max_time = :Heure[numéro_ligne];
col_data = Column(dt, "Heat") << Obtenir les valeurs ;
min_data = col_data[row_num::total_rows];
min_value = Minimum (min_data);
min_positions = loc min(min_data);
min_time_col = min_positions + (row_num - 1);
min_time = :Heure[min_time_col];
Générateur de graphiques(
Taille (1032, 646),
Afficher le panneau de configuration (0),
Ajuster à la fenêtre (« Désactivé »),
Variables( X( :Temps ), Y( :Chaleur ) ),
Éléments(Ligne(X, Y, Légende(14))),
Envoyer au rapport(
Dispatch( {}, "Heure", ScaleBox,
{Format( "Meilleur", 12 ), Min( 1,88 ), Max( 5,07800951567129 ), Inc( 0,5 ),
Ticks mineurs (4), ajouter une ligne de référence (
max_time,
"Pointé",
"Noir",
Char(temps_max),
2,
1,
Paramètres de l'étiquette ({Couleur de l'étiquette( "Rouge" )} )
), Ajouter une ligne de référence(
mon_temps,
"Pointé",
"Noir",
Char(mon_temps),
2,
1,
Paramètres de l'étiquette ({Couleur de l'étiquette( "Rouge" )} )
)}
),
Dispatch( {}, "Chaleur", ScaleBox,
{Ajouter une ligne de référence(
valeur_max,
"Pointé",
"Noir",
Char(valeur_max),
2,
1,
Paramètres de l'étiquette ({Couleur de l'étiquette( "Rouge" )} )
), Ajouter une ligne de référence(
valeur_min,
"Pointé",
"Noir",
Char(valeur_min),
2,
1,
Paramètres de l'étiquette ({Couleur de l'étiquette( "Rouge" )} )
)}
)
)
);
Y a-t-il quelque chose qui n'est pas fait par ce script ?
Merci d'avoir pris le temps de partager ce code ! Je rencontre un problème : lorsque j'exécute le même script, le graphique généré est très différent. Qu'est-ce que je fais mal ?
Si vous utilisez l'exemple de table fourni, cela ne fonctionnera pas, sauf si vous définissez les types de données des colonnes sur « numérique » et les types de modélisation sur « continu ». Je suppose que vous n'avez pas effectué la conversion du type de modélisation.
Merci ! Après avoir tout mis à jour, le graphique affiche une moyenne pour les statistiques récapitulatives. Il affiche maintenant le pic et la vallée. Je vais donc essayer de trouver comment faire en sorte que la courbe représente les données réelles.
J'ai réussi à tout faire fonctionner et j'ai accepté la solution. Cependant, lorsque j'essaie d'utiliser le générateur de graphiques, la ligne continue de représenter la moyenne. Je suppose que quelque chose dans le script est à l'origine du problème. Quelqu'un pourrait-il m'aider à résoudre ce problème ?
Il utilisera une ligne moyenne car plusieurs mesures se produisent exactement en même temps.
Modifier : assurez-vous que vos données sont correctement ordonnées, puis utilisez l’ordre des lignes

De cette façon, il ne devrait pas utiliser de statistiques récapitulatives et ordonnera les données sur l'axe des x en fonction de l'ordre des lignes de votre tableau.
Merci, la solution a été de s'assurer que toutes les colonnes de données étaient étiquetées comme numériques et continues. Merci à tous pour votre patience.