gpt4 book ai didi

r - ggplot 导出的抗锯齿

转载 作者:行者123 更新时间:2023-12-01 16:19:05 39 4
gpt4 key购买 nike

是否可以为导出的 ggplot 图提供良好的抗锯齿功能?我尝试过 Cairo 包以及一些不同的设备,但它们似乎都有锯齿状边缘。

library(ggplot2)
library(Cairo)

p <- ggplot(data.frame(x=1:5,y=1:5),aes(x=x,y=y))+
geom_text(aes(2.5,2.5),label="Brown Fox bla bla..",size=5)+
labs(x=NULL,y=NULL)+
theme_bw()+
theme(plot.background=element_blank(),
plot.margin = margin(c(0,0,0,0)),
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.line = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())

png("test-nocairo.png",height=2,width=6,units="cm",res=300)
print(p)
dev.off()

png("test-cairo.png",height=2,width=6,units="cm",res=300,type="cairo")
print(p)
dev.off()

tiff("test-cairo.tiff",height=2,width=6,units="cm",res=300,type="cairo")
print(p)
dev.off()

ggsave("test-ggsave.png",height=2,width=6,units="cm",dpi=300,type="cairo")

png-nocairoPNG 没有开罗

png-cairo巴布亚新几内亚开罗

tiff-cairo开罗 TIFF

png-ggsave-cairoPNG ggsave 开罗

就我的目的而言,图像必须是 300dpi 的 PNG 或 TIFF(无损)格式,这一点很重要。我知道我可以导出为矢量格式(SVG、PDF 等),然后使用另一个程序转换为 PNG/TIFF,但这显然是额外的工作。我很好奇 R 中是否有任何我忽略的解决方案。

photoshop

以上是 Photoshop 渲染的质量,供引用。 PNG Arial 14pt。

最佳答案

好的。我可能在这里偶然发现了一些东西。当我使用 annotate 而不是 geom_text 时,cairo 抗锯齿功能似乎有效。

p <- ggplot(data.frame(x=1:5,y=1:5),aes(x=x,y=y))+
annotate("text",x=2.5,y=2.5,label="Brown Fox bla bla..",size=5)+
labs(x=NULL,y=NULL)+
theme_bw()+
theme(plot.background=element_blank(),
plot.margin = margin(c(0,0,0,0)),
axis.title = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
axis.line = element_blank(),
panel.grid = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())

png("test-annotate-cairo.png",height=2,width=6,units="cm",res=300,type="cairo")
print(p)
dev.off()

png-annotate-cairo

因此,似乎 geom_text 过度绘制了可能存在问题的相同文本。我认为这种过度绘制的问题在某个时候已经得到解决。我认为抗锯齿还有改进的空间,但已经比以前好很多了。

关于r - ggplot 导出的抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46014030/

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