« [R]オブジェクトについて | トップページ | [R]インターネットにつながっていないコンピューターで新たなパッケージをインストールする »

2014年9月11日 (木)

[R]図の任意の位置に画像ファイルを貼り付ける

Rの基本機能のグラフィック(plot関数、points関数など)で作成した図に画像ファイルを簡単に貼り付けることができる。貼り付けるには、pixmapパッケージのaddlogo関数を使用すればよい。

以下はpixmapパッケージに付属のサンプル画像(PNM形式、.ppm)の画像ファイルをplot関数、points関数と共に使用した例。

addlogo関数のpx、pyオプションに指定をした範囲に画像が貼り付けられる。縦横比が画像と異なる場合はその範囲に合うように伸縮されて貼り付けられる。当然、縦横比は合わなくなるので注意。

> install.packages("pixmap")
> library(pixmap)
> # サンプルの画像ファイルの読み込み
> # (警告があるかもしれないが無視してかまわない)
> g <- read.pnm(system.file("pictures/logo.ppm", package = "pixmap")[1])
> plot(g)  # とりあえずサンプル画像を表示
> x <- 1:10  # 描画サンプルのためのデータ
> y <- 1:10  # 同上
> plot(x, y)  # サンプル画像を消してサンプルデータをプロット
> # 読み込んだサンプル画像を2点(1,1)、(6,3)の範囲に描画
> addlogo(g, px = c(1, 6), py = c(1, 3))
> # 図を重ねて描画できる
> addlogo(g, px = c(4, 6), py = c(2, 8))
> # プロット点を図の上に描画する
> points(x, y, col = "red")
> # 図の枠線からはみ出でたところは描画されない
> addlogo(g, px = c(-2, 20), py = c(-5, 12))

最後の、図の枠線からはみ出た範囲で描画することについて、理由はよくわからないが、画像を描画すると図の枠線の上に書かれてしまう。この原因は不明。なお、画面上は図の枠線に上書きされていても、dev.copy2eps関数を使用してEPS形式でファイルに出力すると、枠線はきちんと描画される。ただし、dev2bitmap関数でBMP形式で出力した画像ファイルでは枠線は上書きされた状態である。原因は不明。

« [R]オブジェクトについて | トップページ | [R]インターネットにつながっていないコンピューターで新たなパッケージをインストールする »

R(グラフィックス)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [R]オブジェクトについて | トップページ | [R]インターネットにつながっていないコンピューターで新たなパッケージをインストールする »

無料ブログはココログ

■■

■■■