R:xyplot的png输出中的Unicode

时间:2013-10-14 18:34:40

标签: r unicode plot png cairo

我希望在Windows 7上使用R 3.0.1在xyplot 的PNG输出中包含一个unicode字符。例如。 (注意ylab中表达式中的μ

## output to windows() works fine
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl")))

## output to PNG does not
png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(CD4 ~ obstime, groups=aids$patient, data=aids, type="b", ylab=expression(sqrt("CD4/µl")))
dev.off()

我收到错误“此设备无法使用指标信息”。

我认为这可能是unicode和png()的一般问题,因为使用plot(1,main =“μ”)打印用于windows()输出的μ,但不用于png()输出(其中μ是默默地省略)。但是,使用CairoPNG无法解决此问题:它为plot()打印μ,但xyplot()的错误仍然存​​在(xyplot似乎也忽略了开头的pointsize =。)

1 个答案:

答案 0 :(得分:1)

试试这个(使用plotmath表达式解释):

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(1 ~ 1,  type="b", ylab=expression(sqrt(CD4/µ*l)))
dev.off()

或者:

png(file="AIDS.png", width=5, height=5, units="in", type="cairo", res=800)
xyplot(1 ~ 1,  type="b", ylab=expression(sqrt(CD4/mu*l)))
dev.off()

(我的设备中的任何一个都比让png()更快地完成对角色版本的处理。)