2015-04-10 15 views
7

Quando salvi un ggplot che utilizza geom_raster, le piastrelle escono "macchiate". È lo stesso risultato se uso ggsave() o pdf(). Non ho questo problema con geom_tile o image. Non ho questo problema con i dispositivi grafici RStudio, X11 o PNG.geom_raster esce "imbrattato" quando si salva in PDF

Che cosa sta causando questo? Come posso ripararlo?

Esempi:

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

Forse inviare una schermata o due in modo che possiamo facilmente vedere che cosa vuoi dire? – Gregor

risposta

8

Ciò è probabilmente dovuto al tuo visualizzatore PDF facendo interpolation of the raster. Ho ricreato il tuo "smeared2.pdf" sul mio Mac (vedi sotto) e sembrava in Adobe Reader (a destra) e sfocato in Anteprima (a sinistra). A seconda del visualizzatore PDF, potresti essere in grado di eliminare l'effetto sfocatura modificando un'impostazione. Ad esempio, in Anteprima, nella scheda PDF in Preferenze è possibile deselezionare "Smooth Text and Line Art" e il PDF verrà visualizzato correttamente.

enter image description here

+0

Non ho pensato di usare un altro lettore. Sì, sto usando Anteprima. C'è qualcosa che posso fare per impedirlo? – shadowtalker

+0

Sì. Cambia le impostazioni di Anteprima come indicato nella mia risposta. – eipi10

+0

Grazie. È "più portabile" usare geom_tile, o è un'impostazione che le persone "dovrebbero" disattivare comunque? – shadowtalker

Problemi correlati