PNGのアンチエイリアス処理

Windows版Rにてアンチエイリアス処理した画像を作成したいときはパッケージ cairoDevice を利用する。まずは、以下のコマンドにてパッケージをインストールして、そのパッケージを読み込む。

1|$install.packages("cairoDevice", repos="http://cran.ism.ac.jp/")
2|$library(cairoDevice)

以下のコマンドを打つことでアンチエイリアス処理されたPNG画像を得られる。上のパッケージを利用した作図デバイスはコマンド Cairo_png にて呼び出す。以下では、画像の保存名は foo.png で、そこに正規分布 N(0, 3) をプロットする。作図デバイスの呼び出し終了はコマンド dev.off() にて行う。

1|$Cairo_png("foo.png", width=6, height=4)
2|$x=seq(-6, 6, 0.1)
3|$plot(x, xaxs="i", yaxs="i", xlab="", ylab="", xlim=c(-6, 6), ylim=c(0, 0.25), bty="l", las=1, family="mono")
4|$polygon(c(-6, x, 6), c(0, dnorm(x,sd=sqrt(3)), 0), col="#edae00", border=NA)
5|$lines(x, dnorm(x,sd=sqrt(3)), lty=1, lwd=2, col="#2b4b65")
6|$dev.off()

結果 foo.png は以下のようになる。綺麗な画像が作成できる。

foo.png

一方で、デフォルトで使用できるコマンド png による作図も以下のような上と同様のコマンドで実行できる。以下の場合の画像の保存名は bar.png である。

1|$png("bar.png", width=432, height=288)
2|$x=seq(-6, 6, 0.1)
3|$plot(x, xaxs="i", yaxs="i", xlab="", ylab="", xlim=c(-6, 6), ylim=c(0, 0.25), bty="l", las=1, family="mono")
4|$polygon(c(-6, x, 6), c(0, dnorm(x,sd=sqrt(3)), 0), col="#edae00", border=NA)
5|$lines(x, dnorm(x,sd=sqrt(3)), lty=1, lwd=2, col="#2b4b65")
6|$dev.off()

この場合の結果 bar.png は以下のようになる。絶望的に汚い。

bar.png
このエントリーをはてなブックマークに追加

Site search

ページのトップへ戻る