plotrix 関数を使用して滑らかなグラデーションを生成すると、Mac ではグラデーションにバンディング パターンが表示されますが、Linux システムではそのようなアーティファクトは見られません。これが発生する理由と MacOSX での修正方法を説明できる提案を探しています。
以下は、png ファイルで色のグラデーションを生成し、それをプロットの背景として使用するコードです。結果は次の画像のようになります。左が Mac、右が Linux です。
画像を生成するコード:
library(png)
library(plotrix)
##create a png with a smooth background gradient
createBackgroundImage <- function(col=c("bisque","darkgoldenrod1","darkorange3")){
tmpfile=tempfile()
png(tmpfile,width=80,height=80)
par(mar=c(0,0,0,0))
plot(-100,-100,col="white",ylim=c(0,100), xlim=c(0,100),
yaxt="n", xaxt="n",xlab="",ylab="",bty="n")
##background color
plotrix::gradient.rect(par("usr")[1], par("usr")[3], par("usr")[2], par("usr")[4],
col=plotrix::smoothColors(col[1],100,col[2],50,col[3],alpha=200),
border=NA)
dev.off()
return(tmpfile)
}
## use that png as the background for a plot
pdf("test.pdf",height=4,width=4)
bckImage = png::readPNG(createBackgroundImage())
##set up the plot
plot(-100,-100,col="white",
ylim=c(0,100),
xlim=c(0,100),
yaxt="n", xaxt="n",
bty="n", xlab="", ylab="")
lim=par()
rasterImage(bckImage, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
dev <- dev.off()
表示だけの問題ではないことを確認しました。(異なるシステムで出力pdfを表示すると、バンディングまたはその欠如が保持されます)。どちらのシステムも R 3.2.1 を実行しており、関連するパッケージ (plotrix と png) は最新です。(両方のシステムで plotrix_3.6-1 と png_0.1-7)
ここで何が起こっているのか、このバンディングを取り除く方法についての提案をいただければ幸いです。