Lyx和Latex在.eps图像上表现出色。但是,当我从Rstudio导出一个带有平滑曲线的散点图时,点就会丢失,而该图只会用该曲线传递。
我尝试过的两种保存方法是:
setEPS()
编写绘图代码,然后是postscript()
,然后是所需的维度等等,然后是使用library(ggplot2)
进行的绘图调用,例如ggplot()
。起初,我认为问题可能在其他地方。但后来我用Mathematica保存了一个.eps,没有问题。
我在互联网上打探了一下,发现了在R中保存.eps的其他问题,但没有人处理丢失的信息。
到底是怎么回事?
我应该提到,.eps映像器在loads中呈现的效果比任何其他格式都要好,所以我坚持使用.eps。
非常感谢你的意见,我还不能投他们一票。
编辑
据我所知,这是一个死胡同,因为每股收益不能保留透明丝带。(见评论)根据请求,我发布了突出问题的代码。
假设您有数据data <- data.frame(replicate(2,rnorm(1000)))
。您想要绘制它们,但是有这么多点,所以您添加了一个透明参数。此外,您还添加了一条带有置信区间的拟合线。您的代码是:
ggplot(data = data, aes(x=X1, y=X2)) +
geom_point(alpha=0.4) +
stat_smooth(se=T, method="lm")
看起来不错。但是,如果您试图将绘图保存为EPS,那么稍后打开保存的文件时,您将看到的只有一个空的绘图对象(除了蓝色贴合的行)。
教训是,如果你坚持每股收益,你必须关闭透明丝带。在这种情况下,设置alpha=1
(或者只是不包括它)和se=FALSE
。
发布于 2015-06-29 07:26:20
问题是EPS格式不支持透明度。
一种选择是输出到PDF,透明度得到充分支持:
ggplot(data = data, aes(x=X1, y=X2)) +
geom_point(alpha=0.4) +
stat_smooth(se=T, method="lm")
dev.copy2pdf(file="plot.pdf",out.type="cairo", width=10, height=7.5)
你可以转换成pdftops
,Inkscape或Adobe的PDF。
保存高效率的PNG也是透明的,但是它不再是向量格式。
或者您可以使用export
包(构建在ReporteRs
包之上)导出到Powerpoint,这为您提供了完全可编辑的向量格式,并且完全支持透明性:
library(export)
library(ggplot2)
data=data.frame(replicate(2,rnorm(1000)))
ggplot(data = data, aes(x=X1, y=X2)) +
geom_point(alpha=0.4) +
stat_smooth(se=T, method="lm")
graph2ppt(file="plot.pptx", width=8, height=6)
编辑:如果您绑定到EPS格式,这并不真正支持半透明,您可以使用cairo_ps()
,一个栅格半透明区域,但保持其余的矢量格式。在最近更新的cairo_ps()
中,现在也有一个参数fallback_resolution
来控制分辨率,在dpi中,半透明区域被栅格化(其余部分保持为矢量格式)。因此,您可以使用:
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()
或者更短的使用export
包:
graph2eps(file="plot.pptx", width=8, height=6, cairo=TRUE, fallback_resolution=600)
发布于 2015-09-25 20:14:57
不是一个解决方案,但我发现的最短工作是将alpha设置为1,并在另一个程序中更改透明度,例如在插图中使用select,然后全部相同,然后改变所有人的透明度/不透明度。如果R能添加一个允许eps透明的特性,那就太好了.
https://stackoverflow.com/questions/28440254
复制相似问题