我希望在R中的箱线图x轴上使用无限符号,并将其写入PDF文件。
我可以通过以下方式设置无限符号:
names(data)[9] <- "∞"
但是当我尝试编写时,会遇到编码错误:
conversion failure on '∞' in 'mbcsToSbcs': dot substituted for <...>
我不确定您尝试如何放置标签,但以下代码对我有效:
x <- 1:10
y <- 1:10
pdf("infty.pdf")
plot(x,y,xlab=expression(infinity))
dev.off()
这个程序会生成一个带有无限符号标签的PDF文件。对于数学符号,我建议不要将它们存储为字符并期望R像处理其他字符一样处理它们。有关更多信息,请参见?plotmath
。
cairoPDF
设备即可实现此功能。更好的想法可能是使用?plotmath
的能力(如?boxplot
中引用的names
参数下所述)。 boxplot(matrix(1:10,ncol=2),names=c("a",expression(infinity)))
在MacOS上,我遇到了一个类似的问题,与男性符号(火星Unicode \u2642)和女性符号(金星Unicode \u2640)有关。pdf()无法绘制它们,而是用点替换它们。
然后我安装了Cairo,但一开始它也不起作用(而是用矩形替换符号),直到我键入
cairo_pdf(pdf.file,family="Arial Unicode MS")
这样就可以了。问题在于找到定义所需符号的字体,因此不能保证它适用于其他符号。
expression(infinity)
的方式与我在问题中设置符号的方式相同,但失败了。你的版本很好用。谢谢! - htorque