2015-07-12 3 views
0

Dans grDevices fonctions R cairo_pdf et cairo_ps il est mentionné que, lorsque la transparence (chaînes alpha) sont utilisés dans la production de vecteurs, il tramer le graphique exporté PDF ou PostScript à une résolution de 72 dpi: https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/cairo.htmlR: utiliser la résolution de repli caire supérieure à 72 dpi en cairo_pdf et cairo_ps

vous pouvez voir le problème si vous essayez

library(ggplot2) 
cairo_ps(file = "test.eps",onefile = FALSE) 
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)) 
dev.off() 

comme dans la sortie (ici zoomé) les symboles de l'intrigue sont fortement pixelisé alors, montrant qu'il est en effet seulement en utilisant 72 ppp:Je me demandais comment la résolution de repli pourrait être augmentée à 600 dpi? Dans library(RGtk2) il ya une commande cairoSurfaceSetFallbackResolution, qui je pense est ce qui est pertinent ici, mais je ne saurais pas comment faire grDevices utiliser ce paramètre. Des pensées? L'utilisation de postscript() btw ne fonctionne pas non plus, car cela ne prend pas en charge la transparence, et renvoie l'erreur "semi-transparence n'est pas pris en charge sur cet appareil: signalé une seule fois par page".

Répondre

0

La dernière version r-devel a maintenant ajouté l'argument supplémentaire fallback_resolution, pour spécifier la résolution à laquelle les éléments vectoriels non pris en charge doivent être rastérisés, par ex. :

library(ggplot2) 
cairo_ps(file = "test.eps",onefile = FALSE,fallback_resolution=600) 
qplot(Sepal.Length, Petal.Length, data = iris, color = Species, size = Petal.Width, alpha = I(0.7)) 
dev.off()