2015-07-12 29 views
0

grDevices R函数cairo_pdfcairo_ps中提到当在矢量输出中使用透明度(alpha通道)时,它将在a处栅格化PDF或postscript导出图形72 dpi的分辨率: https://stat.ethz.ch/R-manual/R-devel/library/grDevices/html/cairo.htmlR:在cairo_pdf和cairo_ps中使用大于72dpi的cairo回退分辨率

你可以看到这个问题,如果你尝试

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() 

在输出(这里放大)的绘图符号都严重像素化的话,显示它确实只用72 dpi: enter image description here

我想知道如何将回退分辨率提高到600 dpi? 在library(RGtk2)有一个命令cairoSurfaceSetFallbackResolution,我认为这是什么在这里相关,但我不知道如何使grDevices使用该参数。有什么想法吗?

使用postscript() btw也不起作用,因为它不支持透明度,并返回错误“此设备不支持半透明度:每页仅报告一次”。

回答

0

最新的r-devel版本现在增加了额外的参数fallback_resolution来指定不支持的矢量元素应该被光栅化的分辨率,例如, :

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()