Gnuplot: Sequenz von Plots erstellen

Gast #3411081
Lesenswert?

Hallo zusammen,

derzeit versuche ich mit gnuplot 4.4 eine sequenz von plots zu 
erstellen, um diese hinterher zu einem gif/movie etc. zusammenzubasteln.
Jetzt suche ich ein skript, das mir (durchnummerierte) nameXXX1.png o.ä. 
aus meinem datenfile erstellt. ich dachte an irgendeine form der 
for-schleife oder so??

viel dank schonmal für die hilfe!!
#3411104
Lesenswert?

Hallo,

du kannst Schleifen bei gnuplot dadurch erstellen, das du den 
Schleifenteil in eine eigene Plotdatei legst, diesen dann von der 
Hauptplotdatei mit dem load Befehl aufrufst und z.B. eine 
Schleifenvariable im Hauptteil anlegst, die dann jedes mal von dem 
Schleifenteil um eins hochgezählt wird. Sobald diese Variable dann die 
Obergrenze erreicht hat wird der Schleifenteil nicht mehr aufgerufen. 
Gibt dazu auch Beispiele im Netz.
Falls du keine Datenpunkte sondern nur Funktionen animieren willst 
kannst du dir das Programm Graph anschauen, das kann direkt avi Videos 
erstellen und ist ebenfalls kostenfrei.
Für wechselnde Ausgangsdateinamen der darzustellenden Daten hatte ich 
mir ein kleine Programm(Skript) geschrieben, das gewisse Strings in 
einer Vorlage durch die entsprechenden Dateinamen ersetzt. Falls daran 
interesse besteht müsste ich das kurz überarbeiten und dann kompilieren, 
wäre aber kein Problem, ist allerdings nicht sehr sonderlich schön 
geschrieben.

Gruß Kai
Gast #3412353
Lesenswert?

Hallo nochmal!

Vielen dank für eure antworten! ich konnte dann heute doch noch unseren 
admin überzeugen auf gnuplot 4.6 zu wechseln, was das problem der syntax 
in der schleife ganz gut behoben hat. leider hat sich ein weiteres 
problem ergeben, das ich vorher gar nicht bedachte hatte. ich habe die 
daten in array-form gespeichert, um daraus ein image zu erstellen, das 
je nach int-wert des array elements eine anders farbiges pixel setzt 
(mifhilfe des with image befehls). wahrscheinlich muss ich die daten 
iwie anders abspeichern, damit es klappt...

vielen dank nochmal!
Gast #3412439
Lesenswert?

Folgendes habe ich mir gerade zusammengegoogelt.
1
reset
2
set term gif animate
3
set output "animate.gif"
4
n=24 #n frames
5
do for [i=0:n]{
6
  plot 'mult-set-data-array-file.dat' index (i) with image
7
}
8
set output

aber nicht selber ausprobiert.
Gast #3413783
Lesenswert?

mit der for-schleife versuche ich es auch gerade... ich würde halt gerne 
jede einzel matrix erst in einem einzel bild abspeichern..
wenn die datei.dat so aussieht:
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 1 0 0 0
1 1 1 1 1

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 1 0 0 1
1 1 1 1 1

0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 1 1 0 1
1 1 1 1 1

hätte ich gerne 3 verschiedene bilder/images..das kann ja eigentlich 
nicht so schwierig sein, aber iwie check ichs nicht.
habe mir das so in etwa gedacht, klappt leider nicht :D
mit der every-option bekomme ich auch nicht, was ich will...

n=0
do for [t=0:2] {
n=n+1
outfile = sprintf('movie/array%03.0f.png',n)
set output outfile

plot 'array.out' matrix with image

}

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