[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]読み込んだ画像ファイルの大きさや色数を調べる(2018.11.27)
- [R]plot関数で図の描画する際の図の縦横比を指定する(2018.11.05)
- [R]プロット点の縁と中を別々の色で塗りつぶす(2015.02.08)
- [R]ggplot2パッケージによる図を、簡単に並べて表示する(2014.12.16)
- [R]ggplot2による図の枠線内の描画範囲(軸の範囲)をxlim、ylimで指定をした値きっかりにしたい(2014.12.09)
« [R]オブジェクトについて | トップページ | [R]インターネットにつながっていないコンピューターで新たなパッケージをインストールする »

コメント