息抜き

最終更新日 2013 09 14
    Rで3D

  • Rでは3D風の画像を作成したり,gifアニメーション画像を作成することもできます.

    方法はいろいろありますが,手っ取り早いのは rgl パッケージを導入することです. このパッケージの sphere3d という関数に乱子画像を読み込ませ,回転させてみます. 画像を右クリックで保存してください.ただしRのコンソールで以下を実行すると表示されるフォルダにranko_mini.pngとして保存しておきます.

    getwd () # Rがファイルを探すデフォルトのフォルダを確認
    


  • アニメーションをgif画像として保存するには別途 ImageMagick というソフトウェアが必要です.
  • Windowsの場合
    ImageMagick-6.*.*.*.-dll.exe というdllをダウンロードしてダブルクリックでインストールしておきます.

    イメージマジックサイト

    左のフレームで,たとえばWindowsをクリックします.

    イメージマジックWindows


    ここにあるimageMagick-*-*-*-dll.exeファイルをダウンロードして実行します.


  • Macの場合
    MacPortsなどで導入します.ここでMacPortsについては説明を省略しますが,Mac本体にはないユーティリティーなどを手軽に導入する環境整備ソフトウェアです.



  • Rでの実行方法

    Rで以下のように実行していきます.なお,アニメgifを作成する場合は,たとえばCドライブにtempという一時保存場所(C:\temp)を用意しておきます.

    install.packages ("rgl") # rglパッケージのインストール
    
    library (rgl) # rgl ライブラリを使うという宣言
    
    open3d()  # 3Dグラフィックのウィンドウのみを生成
    
    # とりあえず単純な球体に乱子の画像を貼り付ける
    
    spheres3d (c(0,0,0),  texture= "ranko_mini.png", radius=1, color="white",alpha=0.8)
    
    # この状態で,画像の適当な場所でマウスの左クリックを押したまま回転できます
    # ホイールを使うと拡大もできます
    
    
    # 自動的に回転させてみる(この場合ImageMagickをインストールしている必要はありません)
    
    if (!rgl.useNULL()) play3d(spin3d(axis=c(0,0,1), rpm=8), duration=20 )
    
    
    # C:\temp というフォルダを用意して,anime.gifを作成(ImageMagickが必要です)
    # Mac の場合は
    # Sys.setenv(PATH=paste("/opt/local/bin", Sys.getenv("PATH"), sep=":")
    # としてImageMagickのconvertプログラムの場所を指定する必要があります
    
    movie3d( spin3d(), , fps = 16, duration=5 , movie =  "C:/temp/anime")
    
    
    # 作成されたanime.gifはブラウザで開きます.Internet ExplorerやFirefoxのアイコンにドラッグ&ドロップします.
    




  • movie3d関数
    「fps = 16, duration=5」の部分の数字を調整すると,アニメの動きを制御できます.ただしあまり大きな数字にするとパソコンに負荷がかかり,作成されるgif画像の容量も巨大になるので注意してください.



もろもろ素材

ラフ画像

より高度な統計分析へ