R2SWF
1.0.0
這是一個將R圖形轉換為Flash File(SWF格式)的R軟件包。轉換可以通過兩種不同的方式進行:
plot()和lines()等繪圖函數直接創建SWF文件。慣例是,每次您調用高級繪圖函數,例如plot()時,電影都會創建一個新的幀並在此幀中繪製以下形狀。這樣,您可以通過調用一系列plot()函數來創建一些動畫。svg2swf()從SVG轉換為SWF,以及image2swf()將PNG和JPG圖像轉換為單個SWF文件。R2SWF取決於以下庫:
R2SWF中包含libming的源代碼,您需要自己安裝其他三個。
對於Debian/Ubuntu用戶,安裝依賴庫的命令是
sudo apt-get install zlib1g-dev libpng12-dev libfreetype6-dev
對於基於RPM的系統(例如Fedora),請嘗試運行
sudo yum install zlib-devel libpng-devel freetype-devel
在第一個示例中,我們首先使用png()函數創建20個圖像,然後將它們轉換為單個SWF文件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 )
使用svg2swf非常相似,除了輸出動畫包含向量圖形。
# # 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 )
第三個示例顯示瞭如何使用SWF設備直接創建(而不是轉換)SWF文件。
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()通常,當使用SWF設備時,高級繪圖函數(例如plot() )將通過一個幀推進電影,而低級功能( lines() , text()等)僅對當前幀有效。