• Diese Seite verwendet Cookies. Indem du diese Website weiterhin nutzt, erklärst du dich mit der Verwendung von Cookies einverstanden. Erfahre mehr

gnuplot - Markierung automatisch erstellen?

Herakles

Profifragensteller
Themenstarter #1
Moin!

Kennt jemand eine Möglichkeit, in einem Datensatz eine Markierung mit gnuplot so auszuwerten, dass anschließend in einem geplotteten Graphen eine Markierung auftaucht?

Also angenommen ich habe 100 Werte in einer Datei und nach Wert46 tritt ein Sonderfall auf, der nichts mit den Daten an sich zu tun hat, zu diesem Zeitpunkt aber in die Wertetabelle einfließt. Kann ich hier eine Markierung an der entsprechenden Stelle automatisch beim Auslesen der Wertetabelle erstellen?

Danke, Herakles
 

Herakles

Profifragensteller
Themenstarter #2
Eigener Lösungsansatz:

zwei Dateien erstellen, in einer befinden sich die Zahlenwerte, in einer anderen nur die fortlaufenden Nummern der Wertetabelle und im Falle des Sonderereignisses wird der Wert für die fortlaufende Nummer auf "100" gesetzt, zu allen anderen fortlaufenden Nummern wird der Wert auf "0" gesetzt.

Werden beide Graphen zusammen geplottet, entsteht an der Markierungsstelle ein Pik.

Hmm... das müsste aber auch einfach gehen.

Herakles
 

Baseballbatboy

Cpt. Baseballbatboy
#3
Was heißt "nichts mit den Daten an sich zu tun hat"? Kannst Du mal ein Beispiel geben?

Gruß
Baseballbatboy

BTW, wie bekommst Du als Markierung ein Pik hin? Das suche ich schon die ganze Zeit.
 
Zuletzt bearbeitet:

Herakles

Profifragensteller
Themenstarter #4
Nichts mit den Daten zu tun hat:

Angenommen, es werden permanent Daten aufgenommen, die Zahlenwerte beinhalten, also etwa so:

1 254
2 154
3 100
4 200
5 256
6 898
7 56
8 1
9 2548
und während diese Daten aufgenommen werden, tritt zwischen Paket nummer 5 und Paket nummer 6 ein besonderes Ereignis ein, das keine Daten liefert, sondern eben einfach nur eintritt. Nehmen wir an, ein Baum im Garten fällt um und ich will das in die Datenstruktur mir reinbringen. Sagen wir, das sind Windgeschwindigkeiten.

Das is eigentlich ein tolles Beispiel. Also. In diesem Beispiel nehme ich jetzt mal Winddaten auf. Die Geschwindigkeit davon. diese Werte nehme ich jede Stunde. Und zwischen der 5. und der 6. Messungsstunde fällt ein Baum um. Dieses umfallen liefert keinen Wert, aber es ist eben passiert. So und nun soll in meinem Gnuplotgraphen sowohl die Windgeschwindigkeit drinstehen, als auch, dass zwischen Stunde 5 und Stunde 6 ein Baum umgefallen ist.

Zur Pikmarkierung: man nimmt einfach eine Datei, schreibt da den Zeitpunkt, den man als Pik haben will, rein und als dazugehörigen Zahlenwert beispielsweise eine 100 und die Werte darum setzt man auf Null.

Angenommen, Du willst zwei Piks habe, einen bei 6 und einen bei 9, dann macht Du dir eine Datei mit diesem Inhalt:

Code:
5 0
6 100 
7 0 
8 0
9 100
10 0
Alles klar?

Herakles
 

Baseballbatboy

Cpt. Baseballbatboy
#5
Ah, Du machst das Pik dann über den Style im plot-Befehl?

Wenn dieses anderweitige "Ereignis" sowieso nicht zusammen mit den anderen Daten aufgenommen wird, sondern von Hand, dann würde ich an die Stelle einfach einen Pfeil setzen: "set arrow <Zeit> <y-Wert der Daten>"
Der lässt sich dann auch noch mit einem Label beschriften: "set label <gleich Koordinaten, vielleicht etwas verschoben>" (schau dazu lieber nochmal in die Hilfe, ich weis nicht ob das so stimmt).

Willst Du das ganze ein bisschen eleganter, dann kannst Du diese Ereignisse (Zeitpunkt, evtl. Bezeichnung) auch in eine Datei schreiben und dann per Skript in Gnuplot laden. Ich meine, das Gnuplot das könnte.

Gruß
Baseballbatboy
 

Herakles

Profifragensteller
Themenstarter #6
Okay, ein wenig erweitert das Problem:

wie erstelle ich eine senkrechte Gerade in gnuplot?

Wer das weiß, bekommt von mir einen Extrapunkt.

Herakles
 

DerMoench

Well-Known Member
#7
faellt mir jetzt linepoints ein, wenn ich mich recht entsinne, is schon nen weilchen her, nimm in die eine datei,
Code:
#datei.dat bsp
#x y
2 6
2 2
und dann

plot datei.dat with lines
und schon haste deine senkrechte. waere eine moeglichkeit.

Gruß DerMoench