リンク

無料ブログはココログ

« [R]ggplot2による図の枠線内の描画範囲(軸の範囲)をxlim、ylimで指定をした値きっかりにしたい | トップページ | [gfortran]エラーメッセージ「imported at (1), is also the name of the current program unit」 »

2014年12月10日 (水)

[R]ggplot2によるグラフィックスで、図にPNG形式の画像を貼る

パッケージggplot2によるグラフィックスでは、図にPNG形式の画像を貼ることができる。画像ファイルを貼るには画像ファイルからラスターオブジェクトを作成し、annotation_raster関数を用いることで貼ることができる。

annotation_raster関数の引数は、1番目はラスターオブジェクトを指定し、xmin、xmax、ymin、ymaxオプションには、それぞれ画像を貼り付ける左端、右端、下端、上端のそれぞれの座標を指定すればよい。

以下はカレントフォルダーに以下のようなimage.pngという画像ファイルがある場合の例。

Image_2

> library(ggplot2)
> library(png)
> image <- readPNG("image.png")
> dtf <- data.frame(x = 0:10, y = 0:10)
> g <- ggplot(dtf, aes(x = x, y = y)) + geom_point(size = 9, colour = "red")
> g <- g + annotation_raster(image, xmin = 0, xmax = 1, ymin = 0, ymax = 2)
> g <- g + annotation_raster(image, xmin = 0, xmax = 10, ymin = 1, ymax = 5)
> g <- g + annotation_raster(image, xmin = 8, xmax = 15, ymin = 4, ymax = 11)
> print(g)

結果は以下のとおり。
Image2 上記例のとおり、先に描画したプロット点は上書きされる。先に描画したラスターオブジェクトも上書きで描画される。図枠の外にはみ出た分は描画されない。

画像とannotation_raster関数に指定をした描画範囲の縦横比が異なる場合、画像は適宜伸縮される。

« [R]ggplot2による図の枠線内の描画範囲(軸の範囲)をxlim、ylimで指定をした値きっかりにしたい | トップページ | [gfortran]エラーメッセージ「imported at (1), is also the name of the current program unit」 »

コメント

コメントを書く

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

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

« [R]ggplot2による図の枠線内の描画範囲(軸の範囲)をxlim、ylimで指定をした値きっかりにしたい | トップページ | [gfortran]エラーメッセージ「imported at (1), is also the name of the current program unit」 »