GnuPlot - Vektoren zeichnen

(Firma: FH Osnabrück) #1142507
Lesenswert?

Hallo Community,

ich bin neu hier und das aus dem unschönen Grund, weil ich ein Problem 
habe. Vielleicht könnt Ihr mir da ja helfen.

Ih habe ein Programm geschrieben, dass mir Daten in Dateien schreibt und 
mir diese dann in GnuPlot anzeigt.

Das funktioniert eigentlich auch ganz gut nur habe ich noch ein Problem:

Ich würde gerne Vektoren in Gnuplot zeichnen weiß aber nicht wie diese 
mit welcher Syntax in die Files geschrieben werden müssen.

Was ich bei den Koordiantenpunkte mache ist, dass ich die Daten einfach 
in eine Datei schreibe mit x und y Koordinaten und diese dann an GnuPlot 
übergebe.
Genau so würde ich es auch gerne mit den Vektoren machen nur finde ich 
die Syntax dazu nicht.

mit    set arrow 3 from 0,-5 to 0,5   soll man einen Pfeil malen können, 
allerdings will das bei mir nicht so recht funktionieren.


Momentan stehe ich etwas neben mir und bekomme es einfach nicht, weil es 
wahrscheinlich wieder eine Kleinigkeit ist.


Wäre für Tipps oder Vorschläge dankbar.


Mit freundlichen Grüßen
Tido
#1142530
Lesenswert?

"set arrow" funktioniert nur wenn Du schon ein Plot hast:
"gnuplot> plot sin(x)
gnuplot> set arrow 3 from 0,-1 to 2,0.5
gnuplot> replot"

Was Du suchst ist sicher so eine Darstellung:
http://www.columbia.edu/~sl2403/gnuplot/intro/style9.png
"Draw vectors. An arrow is plotted from (X,Y) to (X+dX,Y+dY). So that 
you need 4 columns data in your data file."

Also: Wenn Du eine Datei test.dat mit dem Inhalt
0 0 1 1
0 0 -1 1
hast wird Dir
1
plot "test.dat" with vector
die Vektoren plotten.

PS: Wenn Du mit LaTeX arbeitest oder überhaupt Formeln oder griechische 
Symbole verwendest kann ich Dir pyxplot empfehlen.
http://www.pyxplot.org.uk/gallery.shtml

Willst Du die Daten mit einem C/C++-artigen Programm generieren schau 
Dir auch mal Asymptote an!
http://asymptote.sourceforge.net/gallery/
(Firma: FH Osnabrück) #1142874
Lesenswert?

Richtig erkennt und gleich die Lösungen geliefert.


Ich habe das gerade einmal durchgetestet und es funktioniert wirklich 
sehr gut. Hatte mich zuerst über die etwas mekrwürdige Darstellung der 
Vektoren gewundert dann aber doch gesehen, dass auch hier die dritte und 
vierte Koordinaten nicht das Ende des Vektors beschreiben sondern den 
gemalten Vektor an sich.
Stand ja auch in deinem Post nur halt noch nicht in meinem Programm.

Für die angegebenen Links bin ich ebenfalls sehr dankbar. Ich werde 
diese leider wegen des zeitlichen Mangels dieses Mal nicht mehr 
verwenden können, jedoch ist das mit Sicherheit etwas für die nächsten 
Programme und die lassen nie lange auf sich warten, denn man braucht 
immer kleine Helferlein.

Latex ist für mich im nächsten Semester ein Thema, da ich dann in meinem 
Praxissemester bin und mich dann damit auseinandersetzen wollte.
Vorrangig erst einmal um meinen Praxissemesterbericht zu erstellen und 
dann um mal zu schauen, welches Potenzial noch dahinter steckt.


Vielen Dank. Das hat mir wirklich weitergeholfen.

mit freundlichen Grüßen
Tido Groothoff
(Firma: FH Osnabrück) #1147743
Lesenswert?

Hallo ich hätte da noch einmal eine Frage, weil mir auch nicht klar ist 
ob das überhaupt mit GnuPlot machbar ist.

Meine verwendeten Koordinatendateien enthalten Daten folgender Form:
1 3
1 6
4 5
3 3
7 3

ist es hier möglich, wenn ich an jede Zeile eine weiter Zahl anhänge, 
dass diese als Beschriftung für die geplotteten Datenpunkte verwendet 
werden kann.

1 3 1
1 6 2
4 5 3
3 3 4
7 3 5

Derzeit verwende ich für den Aufruf:
plot "c:/koordinatendatei.dat" with points lt -1 lw 12

Mit freundlichen Grüßen
Tido
Gast #1155566
Lesenswert?

Moin Moin,
ich habe auch eine Frage zu der Darstellung von Vektoren in GnuPlot und 
wär euch dankbar wenn ihr mir helfen könntet. Ich habe die Aufgabe eine 
gewisse Anzahl von Punkten mit ihren Fehlervektoren darzustellen. Das 
Problem hierbei ist, dass die Vektoren sehr klein sind und eigentlich 
mit einem Skalar multipliziert werden müssten um sie überhaupt sehen zu 
können. In meiner Koordinaten Datei sind sie allerdings unskaliert 
gespeichert. Meine Frage ist also ob es möglich ist, beim Einlesen der 
Werte auch noch einen Faktor zum Skalieren zu übergeben.
Schonmal vielen Dank im Vorraus!
Gast #1155583
Lesenswert?

>gewisse Anzahl von Punkten mit ihren Fehlervektoren darzustellen.

Ich kenne eher den Ausdruck Fehlerbalken -- wenn das gemeint ist:
Du kannst die Daten skalieren. Die Daten

stefan@AMD64-X2 ~ $ cat data.txt
0 0 0.1 -0.3
1 1 0.1 -0.3
2 4 0.1 -0.3
3 9 0.1 -0.3
4 16 0.1 -0.3
5 25 0.1 -0.3
6 36 0.1 -0.3
7 49 0.1 -0.3
8 64 0.1 -0.3
9 81 0.1 -0.3
10 100 0.1 -0.3

könnte man plotten mit

gnuplot> plot "data.txt" using 1:2:($2+10*$3):($2+10*$4) with errorbars

($3) ist der Fehlerwert von Spalte 3, ($3*10+2) das zehnfache plus 2.
Näheres siehe Dokumentation oder Gnuplot Mailingliste.
Gast #1155678
Lesenswert?

Möglicherweise möchte Ole ein Vektorfeld zeichnen lassen. Aber auch das
ist kein Problem, da auch dort mit der using-Option die dargestellten
Werte nach Belieben aus den Werten aus der Datei errechnet werden
können.
Gast #1156141
Lesenswert?

Ich habe in einem anderen Forum noch eine gute Lösung für mein Problem 
gefunden:

gnuplot> faktor = 5
gnuplot> plot "file.dat" using 1:2:($3*faktor):($4*faktor) with vector

Mit diesem Befehl kann also die Länge der Vektoren verändert werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren