Dies ist ein R -Paket zum Konvertieren von R -Grafiken in Flash -Datei (SWF -Format). Die Konvertierung kann auf zwei verschiedene Arten durchgeführt werden:
plot() und lines() die SWF -Datei direkt erstellen können. Die Konvention ist, dass der Film jedes Mal, wenn Sie eine hochrangige Handlungsfunktion, z. B. plot() , einen neuen Rahmen erstellen und die folgenden Formen in diesem Rahmen zeichnen. Auf diese Weise können Sie eine Animation erstellen, indem Sie eine Reihe von plot() -Funktionen aufrufen.svg2swf() um von SVG in SWF und image2swf() umzuwandeln, um PNG- und JPG -Bilder in eine einzelne SWF -Datei umzuwandeln. R2SWF hängt von den folgenden Bibliotheken ab:
Der Quellcode von libming ist in R2SWF enthalten, und Sie müssen die anderen drei selbst installieren.
Für Debian/Ubuntu -Benutzer ist der Befehl zur Installation abhängiger Bibliotheken
sudo apt-get install zlib1g-dev libpng12-dev libfreetype6-dev
Versuchen Sie für RPM -basierte Systeme (EG Fedora) zu laufen
sudo yum install zlib-devel libpng-devel freetype-devel
Im ersten Beispiel erstellen wir zunächst 20 Bilder mithilfe png() -Funktion und konvertieren sie dann in eine einzelne SWF-Datei R2SWF-ex1.swf .
# # Creating png files
png( " image-png-%03d.png " , 480 , 300 )
x = seq( 0 , 2 * pi , length.out = 20 )
cols = rainbow( 20 )
for ( i in 1 : 20 ) plot( x [ i ], sin( x [ i ]), xlim = c( 0 , 2 * pi ), ylim = c( - 1 , 1 ),
col = cols [ i ], pch = 16 , cex = 2 , main = " PNG => SWF " )
dev.off()
# # Obtain the filenames
pngfiles = sprintf( " image-png-%03d.png " , 1 : 20 )
# # Convert to SWF
image2swf( pngfiles , " R2SWF-ex1.swf " , interval = 0.3 )
Die Verwendung von svg2swf ist ziemlich ähnlich, außer dass die Ausgabeanimation Vektorgrafiken enthält.
# # Do similar things as above
svg( " image-svg-%03d.svg " , 8 , 5 )
x = seq( 0 , 2 * pi , length.out = 20 )
cols = rainbow( 20 )
for ( i in 1 : 20 ) plot( x [ i ], sin( x [ i ]), xlim = c( 0 , 2 * pi ), ylim = c( - 1 , 1 ),
col = cols [ i ], pch = 16 , cex = 2 , main = " SVG => SWF " )
dev.off()
svgfiles = sprintf( " image-svg-%03d.svg " , 1 : 20 )
# # Convert to SWF
svg2swf( svgfiles , " R2SWF-ex2.swf " , interval = 0.3 )
Das dritte Beispiel zeigt, wie das SWF -Gerät verwendet wird, um SWF -Datei direkt zu erstellen (anstatt sie konvertieren).
swf( " R2SWF-ex3.swf " )
set.seed( 123 )
x = rnorm( 5 )
y = rnorm( 5 )
for ( i in 1 : 100 ) {
plot( x <- x + 0.1 * rnorm( 5 ), y <- y + 0.1 * rnorm( 5 ),
xlim = c( - 3 , 3 ), ylim = c( - 3 , 3 ), col = " steelblue " ,
pch = 16 , cex = 2 , xlab = " x " , ylab = " y " )
title( " Brownian Motion " )
}
dev.off() Im Allgemeinen werden bei Verwendung des SWF-Geräts hochrangige Plotfunktionen (z. B. plot() ) den Film um einen Rahmen voranschreiten, und die Funktionen auf niedriger Ebene ( lines() , text() usw.) sind nur zum aktuellen Rahmen wirksam.