2015-04-10 22 views
7

geom_raster kullanan bir ggplot kaydederken, döşemeler "lekeli" çıkıyor. ggsave() veya pdf()'u kullanırsam aynı sonuçtur. Bu sorun geom_tile veya image ile yok. RStudio, X11 veya PNG grafik aygıtlarında bu sorun yok.geom_raster, PDF'ye kaydederken "bulaşmış" çıkıyor

Buna neden olan nedir? Bunu nasıl düzeltebilirim?

Örnekler:

library(ggplot2) 

## doesn't work: tiles are smeared together 

ggsave("smeared1.pdf", 
    ggplot(cbind(expand.grid(x = 1:3, y = 1:3), fill = rnorm(9))) + 
    geom_raster(aes(x = x, y = y, fill = fill))) 

pdf("smeared2.pdf") 
ggplot(cbind(expand.grid(x = 1:3, y = 1:3), fill = rnorm(9))) + 
    geom_raster(aes(x = x, y = y, fill = fill)) 
dev.off() 

## works fine 

ggsave("not-smeared0.png", 
    ggplot(cbind(expand.grid(x = 1:3, y = 1:3), fill = rnorm(9))) + 
    geom_raster(aes(x = x, y = y, fill = fill))) 

ggsave("not-smeared1.pdf", 
    ggplot(cbind(expand.grid(x = 1:3, y = 1:3), fill = rnorm(9))) + 
    geom_tile(aes(x = x, y = y, fill = fill))) 

pdf("not-smeared2.pdf") 
ggplot(cbind(expand.grid(x = 1:3, y = 1:3), fill = rnorm(9))) + 
    geom_tile(aes(x = x, y = y, fill = fill))) 
dev.off() 

pdf("not-smeared3.pdf") 
image(matrix(rnorm(9), 3)) 
dev.off() 
+0

Belki bir ekran görüntüsü gönderebilir ya da iki yüzden kolayca Ne demek istediğini anlıyorum ki? – Gregor

cevap

8

Bu muhtemelen nedeni PDF izleyiciye interpolation of the raster yapıyor. Mac'imde "smeared2.pdf" i yeniden oluşturdum (aşağıya bakın) ve Adobe Reader'da (sağda) iyi görünüyordu ve Önizleme'de (solda) bulanık görünüyordu. PDF görüntüleyicinize bağlı olarak, bir ayarı değiştirerek bulanıklaştırma efektinden kurtulabilirsiniz. Örneğin, Önizlemede, Tercihler altındaki PDF sekmesinde "Pürüzsüz Metin ve Çizgi Resimleri" işaretini kaldırabilirsiniz ve PDF düzgün görüntülenecektir.

enter image description here

+0

Farklı bir okuyucu kullanmayı düşünmedim. Evet, Önizleme kullanıyorum. Bunu önlemek için yapabileceğim bir şey var mı? – shadowtalker

+0

Evet. Önizlemenin ayarlarını cevabımda belirtildiği gibi değiştirin. – eipi10

+0

Teşekkürler. Geom_tile kullanmak için "daha taşınabilir" midir, yoksa bu insanların "kapatması" nı zaten reddetmiş bir ortam mıdır? – shadowtalker

İlgili konular