Ich bin neu im Erstellen von Skripten und habe Probleme, eines zu erstellen, das die Spitzen und Täler der Daten beschriftet.
Ziel ist es, alle Täler nach der Erkennung des ersten Peaks zu kennzeichnen. Ich versuche, dies zu vereinfachen, indem ich ein Skript erstelle, das die Daten grafisch darstellt und alle Peaks und Täler beschriftet, um meinem Team die Datenanalyse zu erleichtern. Ich habe versucht, die vorherigen Anweisungen zu befolgen, aber es scheint, als würde es einfach nicht funktionieren.
Ich habe versucht, alle vorhandenen Lösungen hierfür zu erkunden, hatte jedoch Probleme, eine Lösung zu implementieren, die für mich funktionierte.
Ihre Daten scheinen Zeichendaten zu sein, was zumindest eine Konvertierung in numerisch/kontinuierlich erfordert. Könnten Sie Ihre Daten verwenden, ein Diagramm erstellen und markieren, was Sie finden/erkennen möchten? Normalerweise lassen sich Spitzen/Täler mit einer Kombination aus Lag/Dif und ggf. einigen if-Anweisungen finden.

dt = Öffnen( "$DESKTOP/Sample.jmp" );
max_value = Col Maximum(Column(dt, "Wärme"));
Gesamtzeilen = N Zeilen(dt);
Time_col = Column(dt, "Wärme");
Zeilennummer = 0;
Für (i = Gesamtzeilen, i >= 1, i--,
Wenn (Time_col[i] == max_value,
Zeilennummer = i;
Brechen();
)
);
max_time = :Zeit[Zeilennummer];
col_data = Spalte(dt, "Wärme") << Werte abrufen;
min_data = col_data[Zeilenanzahl::Gesamtzahl_Zeilen];
min_value = Minimum(min_data);
min_positions = loc min(min_data);
min_time_col = min_positions + (row_num - 1);
min_time = :Time[min_time_col];
Graph Builder(
Größe (1032, 646),
Systemsteuerung anzeigen( 0 ),
An Fenster anpassen( "Aus" ),
Variablen (X(:Zeit), Y(:Wärme)),
Elemente(Linie(X, Y, Legende(14))),
SendToReport(
Dispatch( {}, "Zeit", ScaleBox,
{Format( "Beste", 12 ), Min( 1,88 ), Max( 5,07800951567129 ), Inc( 0,5 ),
Kleinere Hilfsstriche( 4 ), Referenzlinie hinzufügen(
maximale Zeit,
"Gepunktet",
"Schwarz",
Char(max_time),
2,
1,
Beschriftungseinstellungen ( {Beschriftungsfarbe ("Rot")})
), Referenzzeile hinzufügen(
meine_Zeit,
"Gepunktet",
"Schwarz",
Char(meine_Zeit),
2,
1,
Beschriftungseinstellungen ( {Beschriftungsfarbe ("Rot")})
)}
),
Dispatch( {}, "Wärme", ScaleBox,
{Referenzzeile hinzufügen(
max_wert,
"Gepunktet",
"Schwarz",
Char(max_value),
2,
1,
Beschriftungseinstellungen ( {Beschriftungsfarbe ("Rot")})
), Referenzzeile hinzufügen(
min_wert,
"Gepunktet",
"Schwarz",
Char(min_value),
2,
1,
Beschriftungseinstellungen ( {Beschriftungsfarbe ("Rot")})
)}
)
)
);
Gibt es etwas, das dieses Skript nicht erledigt?
Vielen Dank, dass Sie sich die Zeit genommen haben, diesen Code zu teilen! Ich habe das Problem, dass beim Ausführen desselben Skripts das generierte Diagramm sehr unterschiedlich ist. Was mache ich falsch?
Wenn Sie die bereitgestellte Beispieltabelle verwenden, funktioniert es nur, wenn Sie die Spaltendatentypen auf numerisch und die Modelltypen auf kontinuierlich festlegen. Ich vermute, dass Sie die Modelltypkonvertierung nicht durchgeführt haben.
Vielen Dank. Nachdem alles aktualisiert wurde, zeigt das Diagramm eine Mittellinie für die zusammenfassende Statistik. Es zeigt nun den Gipfel und das Tal, daher werde ich versuchen, herauszufinden, wie ich die Linie so einstellen kann, dass sie die tatsächlichen Daten anzeigt.
Ich habe alles zum Laufen gebracht und die Lösung akzeptiert. Beim Diagrammerstellungsversuch wird die Linie jedoch immer als Mittelwert angezeigt. Ich vermute, dass etwas im Skript die Ursache dafür ist. Kann jemand bei der Lösung dieses Problems helfen?
Es wird die Mittellinie verwendet, da mehrere Messungen genau zur gleichen Zeit stattfinden.
Bearbeiten: Stellen Sie sicher, dass Ihre Daten richtig sortiert sind, und verwenden Sie dann die Zeilenreihenfolge

Auf diese Weise sollte es keine zusammenfassenden Statistiken verwenden und die Daten auf der X-Achse basierend auf der Zeilenreihenfolge Ihrer Tabelle sortieren
Vielen Dank! Die Lösung bestand darin, sicherzustellen, dass alle Datenspalten als numerisch und fortlaufend gekennzeichnet waren. Vielen Dank für Ihre Geduld bei der Hilfe.