2016-04-03 9 views
-1

ich eine TextdateiWie eine Animation von Daten in Matrixformat

1000 
0000 
0000 
0000 

0000 
0100 
0000 
0000 

0000 
0000 
0010 
0000 

0000 
0000 
0000 
0001 

Diese Datei in diesem Format mit einer Reihe von Matrizen, muß plotten ist das Ergebnis einer Simulation durch ein Fortran-Programm erzeugt (die reale Matrizen sind im Format 20x20). Ich muss ein Diagramm dieser Matrizen in Folge erstellen, eine Animation. Beispiel in der Folge über das erwartete Ergebnis ist ein Pixel diagonal zu bewegen (mit "1" als ein Pixel)

I kann (in Python)

from PIL import Image 

m1=([[1,0,0,0], 
    [0,0,0,0], 
    [0,0,0,0], 
    [0,0,0,0]]) 

img = Image.new('1', (4, 4)) 
pixels = img.load() 

for i in range(img.size[0]): 
    for j in range(img.size[1]): 
     pixels[i, j] = m1[j][i] 

img.save('/home/marco/Pictures/image1.bmp') 

mit mehreren BMP BMP-Datei aus einer Matrix erzeugen Dateien kann ich ein animiertes Gif machen, Ok. Das Problem ist, dass ich 2000 Matrizen habe, also von Hand ist eine mühsame Arbeit, nicht elegant

Irgendeine Idee bitte? Vielleicht in Python, Matplotlib, R, Gnuplot. Ich denke, dass ich direkt in Fortran mehr Arbeit haben werde.

Dank

Antwort

4

In R, könnte man tun:

txt <- readLines(n=19) 
1000 
0000 
0000 
0000 

0000 
0100 
0000 
0000 

0000 
0000 
0010 
0000 

0000 
0000 
0000 
0001 
# install.packages("animation") # uncomment and run, if needed 
library(animation) 
saveGIF({ 
    par(mar=c(0,0,0,0)) 
    lapply(split(txt, cumsum(txt=="")), function(x) { 
    x <- do.call(rbind, lapply(strsplit(x, ""), as.integer)) 
    plot(as.raster(xor(x, 255)), interpolate = FALSE) 
    }) 
}, interval = 0.3) 

enter image description here

Verwandte Themen