2013-10-14 16 views
5

image()を使用して、軸、ラベル、余白などを使用して行列をプロットして保存しようとしています。ここで、セルの数は保存されたプロットのピクセル数に対応します。 Rグラフィックスデバイスではうまく見えますが、プロットをファイルに保存すると、イメージの下部と右側に1ピクセル幅の白い余白が常に残ります。私はすべてのフォーマットを試しましたが、成功しませんでした。私は画像操作のためにGIMPを使用しています。プロットの1ピクセル幅の白い余白(下側と右側)を取り除くことはできません

コード例:引数useRaster=TRUEを使用することにより

png("heatmap.png",w=400,h=400) 
par(mar = c(0,0,0,0)) 
require(grDevices) # for colours 
x <- y <- seq(-4*pi, 4*pi, len=400) 
r <- sqrt(outer(x^2, y^2, "+")) 
image(z = z <- cos(r^2)*exp(-r/6), col=gray((0:32)/32),axes = FALSE) 
dev.off() 
+1

これはバグ報告に値すると思われます。 – Thomas

+1

@Thomasしかし、バグ*は 'WindowsGDI'デバイスドライバにある可能性がありますか? (私はあなたがR coreのバグレポートを提出することを意味していると仮定しています) –

答えて

3

、問題が解決されます。

png("heatmap.png",w=400,h=400) 
par(mar = c(0,0,0,0)) 
require(grDevices) # for colours 
x <- y <- seq(-4*pi, 4*pi, len=400) 
r <- sqrt(outer(x^2, y^2, "+")) 
z <- cos(r^2)*exp(-r/6) 
image(z, col=gray((0:32)/32), axes=FALSE, useRaster=TRUE) 
dev.off() 

enter image description here

7

私が先に行くと、あなたがWindows上であると仮定つもりです。 pngはデフォルトでプロットするためにWindowsGDIデバイスを使用しているようです。

png("heatmap.png",w=400,h=400 , type="cairo") 

enter image description here

国境が消えた... type = "cario"を設定することで、代わりにcairographicsを使用してください。 WindowsGDIデバイスでこれがなぜ発生するのかについての回答は、grDevices::windowsヘルプページに表示される可能性があります。

+0

+1 - このオプションはより一般的に適用可能です - 'useRaster = TRUE'オプションは"グリッドは規則的でなければなりません... " –

+0

@MarcintheboxはとにかくWindowsGDIデバイスからの奇妙な動作です。 –

関連する問題