gpt4 book ai didi

r - 透明度可以与 PostScript/EPS 一起使用吗?

转载 作者:行者123 更新时间:2023-12-01 23:32:41 25 4
gpt4 key购买 nike

我正在尝试将 R 图保存为 EPS 文件,但该图的以下组件存在问题 - 灰色透明多边形(透明黑色 = 灰色效果):

polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)

当将绘图保存为 PDF 但不能保存为 EPS 时,这行代码可以正常工作。 EPS好像不支持透明度?我还有什么选择?

这是完整情节的代码:

postscript(file="Figure.eps", width=5.5, height=5.5, onefile=F, horizontal=F)

ts(t(data.frame(initial_timepoint, second_timepoint, third_timepoint, final_timepoint)))->obj
obj[,-c(3,7)]->obj1
plot(obj1, plot.type="single", lwd=0.6, xaxs="i",yaxs="i",xlab="",ylab="LV ejection fraction (%)",xaxt='n',yaxt='n',ylim=c(0,70),col="black")
axis(1, at=c(1,2,3,4), labels=c("1","2","3","4"),cex.axis=1)
axis(2, at=seq(0,70,10), labels=c("0%","10%","20%","30%","40%","50%","60%","70%"),cex.axis=1, las=1)
abline(v=c(2,3),lwd=0.6,lty=2)

stderr <- function(x) sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
avg<-c(mean(initial_timepoint,na.rm=T), mean(second_timepoint,na.rm=T), mean(third_timepoint,na.rm=T), mean(final_timepoint,na.rm=T))
err<-c(stderr(initial_timepoint), stderr(second_timepoint), stderr(third_timepoint), stderr(final_timepoint))

my.count <- c(1,2,3,4)
my.count.rev <- c(4,3,2,1)
y.polygon.6 <- c((avg+err*1.96)[my.count],(avg-err*1.96)[my.count.rev])
x.polygon <- c(my.count, my.count.rev)
polygon(x.polygon, y.polygon.6, col="#00000022", border=NA)
lines(avg,col="black",lwd=0.8,lty=3)
lines((avg+err*1.96),lwd=0.8,lty=3)
lines((avg-err*1.96),lwd=0.8,lty=3)

dev.off()

最佳答案

虽然EPS格式本身不支持半透明,但仍然可以使用cairo_ps() ,自动光栅化半透明区域,并且可以使用参数 fallback_resolution 控制其执行此操作的分辨率。 :

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

所有非半透明区域都可以很好地保留为矢量图形。

或者更短,你也可以使用:

ggsave("filename.eps", device=cairo_ps, fallback_resolution = 600)

或者使用新的 export 导出到 eps 的功能软件包,刚刚在 CRAN 上发布:

install.packages("export")
library(export)
graph2eps("filename.eps", fallback_resolution = 600)

该软件包还支持许多其他导出格式,包括 Powerpoint ( graph2ppt ),请参阅 ?graph2vector ,还保留了半透明...

关于r - 透明度可以与 PostScript/EPS 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29321707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com