Tom*_*tel 6 graphics r hyphen ggplot2
在R中,将绘图保存为PDF或Postscript文件时,轴标签中的连字符将变为减号.显然,这是设计上的.根据"postscript"设备的文档:
[正常编码规则]有一个例外.字符45('" - "')始终设置为负(在Adobe ISOLatin1中的值),即使它在其他编码中是连字符.在所有拉丁语编码,西里尔语和希腊语中,连字符可用作字符173(八进制0255).(这可以在UTF-8语言环境中输入为""\ uad"'.)
有没有办法关闭此功能?
我遇到的问题是我经常以各种格式保存图表,如果我按照建议的"\ uad"解决方法,我会在Postscript/PDF输出中得到预期的连字符,但在将我的图表渲染到其他图形设备(如PNG)时没有任何内容.我宁愿不必为每个情节创建两个版本,一个用于PDF,一个用于PNG.
如果我可以禁用"减黑",那么跨图形设备的渲染行为将是一致的,我可以简单地将绘图"打印"到多个设备以获得不同的格式.例如,我希望能够执行以下操作,并在绘图的PDF和PNG版本中使连字符呈现一致:
p <- qplot(arrival_rate, mean_service_time, data = response_times, ...)
ggsave(p, file = "/tmp/service-scaling.pdf", useDingbats = F)
ggsave(p, file = "/tmp/service-scaling.png")
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
如果您的机器支持它(并且您可以键入capabilities()以了解它是否存在),您可以改为使用cairo_pdf().它似乎处理"-"更像其他绘图设备:

在这里,因为我可能还包括它,是我用于上面两个pdf的代码:
cairo_pdf("cairo_pdf.pdf", width=6, height=3.5)
par(mar=c(10,4,4,1))
plot(1:10, type = "n", axes = FALSE,
main = "Plotted using cairo_pdf()",
ylab = "", xlab = "x-y", cex.lab = 10)
dev.off()
pdf("pdf.pdf", width=6, height=3.5)
par(mar=c(10,4,4,1))
plot(1:10, type = "n", axes = FALSE,
main = "Plotted using pdf()",
ylab = "", xlab = "x-y", cex.lab = 10)
dev.off()
Run Code Online (Sandbox Code Playgroud)