如何在R中将包含符号的图形写入PDF?

时间:2011-07-07 18:10:41

标签: r pdf encoding plotmath

我想在R中的箱形图的x轴上使用无穷大符号,我想写入PDF文件。

我可以通过

设置无穷大符号
names(data)[9] <- "∞"

但是在尝试编写时会出现编码错误:

conversion failure on '∞' in 'mbcsToSbcs': dot substituted for <...>

3 个答案:

答案 0 :(得分:5)

我不完全确定您是如何放置标签的,但以下代码适用于我:

x <- 1:10
y <- 1:10

pdf("infty.pdf")
plot(x,y,xlab=expression(infinity))
dev.off()

因为它产生的PDF的x轴标有无穷大符号。对于数学符号,我建议不要将它们存储为字符,并期望R像对待其他字符一样对待它们。有关详细信息,请参阅?plotmath

答案 1 :(得分:5)

您可以使用Unicode,如下例所示:using Unicode 'dingbat-like' glyphs in R graphics, across devices & platforms, especially PDF(无穷大是Unicode 8734):特别是,简单地使用cairoPDF设备可能会使其工作。可能更好的想法是使用?plotmath功能(在?boxplot参数下的names中引用:

 boxplot(matrix(1:10,ncol=2),names=c("a",expression(infinity)))

答案 2 :(得分:3)

我在MacOS上遇到了类似的问题:男性(mars unicode \ u2642)和女性(venus unicode \ u4040)。 pdf()不会绘制它们,用点替换它们。

然后我安装了Cairo,起初它也没有用(而是用矩形替换了符号),直到我输入

cairo_pdf(pdf.file,family =“Arial Unicode MS”)

哪个有效。问题是找到一个带有你想要定义的符号的字体,所以不能保证它适用于其他符号。